Shell 我可以自动化ssh连接吗?sshuser@server.company.com
我想创建一个脚本,用于将新连接插入到我的Shell 我可以自动化ssh连接吗?sshuser@server.company.com,shell,networking,ssh,remote-access,remote-server,Shell,Networking,Ssh,Remote Access,Remote Server,我想创建一个脚本,用于将新连接插入到我的已知\u主机文件 当我想将新服务器添加到已知的\u hosts文件时,我手动使用以下命令: ssh user@server.company.com 然后我得到了回报: The authenticity of host 'server.company.com (XX.34.228.XXX)' can't be established. ECDSA key fingerprint is 78:eb:28:7c:a6:19:4f:28:48:ab:0d:c6:
已知\u主机
文件
当我想将新服务器添加到已知的\u hosts文件时,我手动使用以下命令:
ssh user@server.company.com
然后我得到了回报:
The authenticity of host 'server.company.com (XX.34.228.XXX)' can't be established.
ECDSA key fingerprint is 78:eb:28:7c:a6:19:4f:28:48:ab:0d:c6:e4:4e:dc:ff.
Are you sure you want to continue connecting (yes/no)?
当回答“是”时
我得到的回报是:
The authenticity of host 'server.company.com (XX.34.228.XXX)' can't be established.
ECDSA key fingerprint is 78:eb:28:7c:a6:19:4f:28:48:ab:0d:c6:e4:4e:dc:ff.
Are you sure you want to continue connecting (yes/no)?
警告:永久添加了“server.company.com XX.34.228.XXX”(ECDSA)
到已知主机的列表。user@server.company.com的密码:
打印密码后-我已连接到远程服务器
下次我想连接时,我将不需要再次插入密码
有没有一种方法可以使用shell脚本自动化这个过程?
我尝试了所有这些选项,但都没有成功:
yes | ssh user@server.company.com
echo yes | ssh user@server.company.com
但什么都不管用
我想创建一个脚本,将新连接插入到已知的\u hosts文件
有ssh-keyscan
:
ssh-keyscan server.company.com >> ~/.ssh/known_hosts
但请注意,这是针对MitM攻击的唯一安全检查,因此,除非您确实确定您和服务器之间没有任何问题,否则您应该在连接到服务器之前手动检查存储的公钥
要自动插入密码,可以使用sshpass
:
sshpass -p password ssh user@server.company.com
但这当然不是建议的,因为密码是以明文形式存储的。这是可行的,它解决了已知主机的问题,为了完成自动化,我需要能够在收到提示时插入密码user@server.company.com不会分配伪终端,因为stdin不是终端。server.company.com密码: