在我的家庭网络上,我有一台运行 Ubuntu 的服务器和另一台运行 Windows 7 的桌面。我在 Windows 机器上使用 cygwin ssh 进入服务器。我试图在这两台机器之间设置密钥。在 Windows 机器上,我使用ssh-keygen -t rsa. 然后我将生成的 id_rsa.pub 'scp' 到服务器并将它放在~/.ssh/authorized_keys文件中。据我所知,这应该是我完成这项工作所需的全部内容。但是,正如您可能已经猜到的那样,事实并非如此。
我正在尝试使用 ssh username@192.168.1.101。我的猜测(我无法获得很好的信息)是我可能需要设置一些不同的东西才能使用 cygwin 或者它可能与使用 IP 地址而不是主机名有关。 . 任何方向或想法?
我需要从目标服务器执行 rsync,中间有一个服务器,我在目标服务器和中间服务器上都有相同的公钥。我想使用该密钥,这样我就不必进行密码验证。
local --ssh--> middle --ssh--> target
Run Code Online (Sandbox Code Playgroud)
阅读通过防火墙使用 rsync 的方法 1 看起来这是可行的,但我已经能够弄清楚命令语法的 ssh 部分。
当我尝试
ssh -i $KEY -A user@middle ssh user@target
Run Code Online (Sandbox Code Playgroud)
我得到
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
Run Code Online (Sandbox Code Playgroud)
显然,代理转发并没有像我预期的那样发生。
理想情况下,我想将所有内容都放在一个命令中,而不必在 ~/.ssh/config 文件中放入任何内容。在这种情况下执行 rsync 的所有步骤是什么?
谢谢,埃弗雷特
我在我的机器上运行一个 ssh 服务器,并且我只使用 internal-sftp 和 ChrootDirectory 将某些用户的访问权限限制为 sftp。我需要的是一种在 chroot 用户之前执行脚本的方法。实际上,目标是在客户端连接上挂载加密文件系统并在关闭时卸载它。提前谢谢。
ssh-agent照常使用私钥。一切正常。
我的问题是关于从ssh-add睡眠、挂起、休眠等活动中刷新键的最佳实践。我考虑过围绕这些命令编写一个简单的包装器,但后来想知道它们是否被调用?还是内核直接启动这个活动?PM 实用程序是严格的用户空间吗?
除了锁定我的屏幕等之外,我想要这个额外的安全层,并且想知道是否有人已经优雅地解决了这个问题或有最佳实践可以推荐。谢谢。
使用亚马逊的 EC2 服务,这在各方面都很棒。
唯一的问题是,我在使用它们自动生成的 SSH 密钥登录时遇到问题。我不知道问题是什么,但不想再看下去,因为我需要重新开始处理我的应用程序。...
tl;博士; 那么,使 SSH 密钥比 20+ 个字符长的密码强得多的安全隐患是什么?根据我的理解,SSH 密钥主要用于防止暴力攻击——但如果我创建了一个包含 20 或 64 个以上字符的用户名和密码......使用密钥会更安全吗?
我有两个 LAN:10.xxx 和 192.xxx 在每个 LAN 上,我都有一台 Linux 机器(10.xx5 和 192.xx5),但它们不是路由器。
我可以从 192.xx5 到 10.xx5 打开 ssh。
局域网 10.xxx 有组播 udp 通道,也就是说,我可以从 10.xx5 收听它们。
问题是:我可以为来自 LAN 192.xxx 的机器共享这些多播频道吗?任何代理、SSH 隧道等?
非常感谢,
我想限制我的 ssh 登录仅限一个 IP 地址,所以我修改了以下文件
$ nano /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)
并添加了这一行(即我的 ip )希望它能起作用
ListenAddress 172.168.0.21
Run Code Online (Sandbox Code Playgroud)
但没有运气连接被拒绝,我不想使用任何 iptables 的东西。为什么它不能以这种方式工作,我该如何修复它以及任何解释?
我们想设置您的 RHEL 服务器之一,以允许从我们的内部网络进行基于密码的登录,并禁止使用密码进行外部登录。知道我们如何在不运行另一个守护进程的情况下实现这一目标吗?内部网络位于不同的接口上,但我不知道如何配置 SSHd 以区分接口。
我有一个用 bash 编写的脚本,它从 cron 运行。它做的第一件事是通过 SSH 连接到远程主机并检索目录中的文件列表。从命令行运行时一切正常,但不是从 cron 运行。
脚本部分最初是这样的:
FILES=$($SSH_BINARY -i $SSH_KEY $SSH_USER@$REMOTE_HOST "ls $REMOTE_DIRECTORY")
echo "Got files = $FILES"
Run Code Online (Sandbox Code Playgroud)
我在该行上方添加了一个 echo 语句(如下所示)以证明它不是路径或变量问题:
echo "$SSH_BINARY -i $SSH_KEY $SSH_USER@$REMOTE_HOST \"ls $REMOTE_DIRECTORY\""
Run Code Online (Sandbox Code Playgroud)
如果我采用结果输出行并以相同的用户 cron 将(root)运行它,它就可以正常工作。
认为它可能与变量赋值有关,我修改了 FILES= 行以读取(因此,将输出直接放入我的 last_run_output 文件中):
$SSH_BINARY -vv -i $SSH_KEY $SSH_USER@$REMOTE_HOST "ls $REMOTE_DIRECTORY"
Run Code Online (Sandbox Code Playgroud)
cron 条目如下所示:
34 * * * * /root/path/to/my/script/get_logs.sh > /root/path/to/last_run_output 2>&1
Run Code Online (Sandbox Code Playgroud)
因此,撇开 PATH、变量分配和权限问题不谈,我开始在 ssh 中使用调试标志。我从命令行运行一次,然后从 cron 运行,并比较了输出。以下是差异的一些亮点:
-边是不成功的尝试,+边是成功的尝试,在cron之外运行。
@@ -87,9 +77,7 @@
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Forced command: /home/sshacs/acssshsink netstorageuser
debug1: …Run Code Online (Sandbox Code Playgroud) 我想将大量流量从我的本地网络传输到位于数据中心的服务器,这样我就不必对本地应用程序进行很多更改。
我提出的两种方法是 1) 使用 VPN (openvpn),或 2) 持久的 SSH 隧道;无论哪种方式,我只需要更改我的应用程序使用的端口,并且应该透明地重定向流量。
我的问题是: