假设我有一个服务器foo.com
只允许键盘交互身份验证,而且我无法更改这一点。这意味着我可以这样做,
sshpass -p PASSWORD ssh foo.com
但我无法创建公钥/私钥来进行无密码登录。
如果我想自动访问此服务器,即无需密码的 ssh,我可以创建一个alias ssh_foo="sshpass -p PASSWORD ssh foo.com"
,但随后我必须为scp
、为创建别名sftp
,并且通常它不适用于使用这些的任何其他程序,例如基于sftp
其挂载远程文件夹的图形程序。所以我正在寻找一个更通用的解决方案。
具体来说,在这种情况下,有没有办法设置我的.ssh/config
文件以允许无密码登录?这应该适用于所有情况。我觉得ProxyCommand
和的一些巧妙的组合LocalCommand
可能会做到这一点,但我不知道是什么。
(请注意,我确实了解这其中的安全隐患,我只是好奇你是否能做到这一点)
答案1
ssh -p
用于指定远程端口,SSH 不会从命令行或文件获取密码。
实现这一点的最简单方法是多路复用连接,使用ssh -fN
以下方式登录一次(可能可通过管道传输密码实现自动化)这将创建控制主控,并使用此连接来多路复用所有其他控制主控。查看您友好的 中的ControlMaster
和选项。ControlPath
man 5 ssh_config
否则使用终端管理器阿拉 tmux
/terminator
可能是您唯一的选择,但这将要求包装所有依赖于 SSH 的命令。