Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 我可以自动化ssh连接吗?sshuser@server.company.com_Shell_Networking_Ssh_Remote Access_Remote Server - Fatal编程技术网

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密码: