谁能告诉我如何为 ssh 创建一个 shell 脚本,这样我就不必手动输入密码了?
我已经学习了 expect 命令,并且尝试了多个示例,但是没有用。有人能帮助我吗?
请尽快回复我。
答案1
如果由于某种原因您只需要依赖期望,请尝试类似以下操作(全部一行):
expect -c "spawn ssh <username>@a<address> <ssh commands/options> ; expect assword ; send $PASSWORD\n ; interact"
答案2
您可以使用ssh-keygen
和ssh-copy-id
创建 rsa 密钥并将您的密钥添加为远程计算机的允许主机。
创建 ssh 密钥:
$ ssh-keygen -t rsa
将其复制到远程计算机作为允许的主机:
$ ssh-copy-id user@<IP/hostname>
例如
$ ssh-copy-id [email protected]
答案3
答案4
不要将密码放入 shell 脚本中。shell 脚本不是放置密码的地方。将密码放入 shell 脚本中是不可取的。不建议将密码放入 shell 脚本中。
如果上述建议不清楚,请重复几十次,直到清楚为止。
使用 SSH 时,最好的办法是使用ssh-keygen
来创建公钥/私钥对。然后,在远程计算机上~/.ssh
(或已设置 SSH 以查找其配置的任何位置)编辑该文件authorized_keys
并粘贴您的民众键。之后,该文件将如下所示:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQ...elided for security...fdVEkAPINVd0=rsa-key-20100920
一旦完成,您就不需要密码即可登录。
编辑以添加
您需要放置您的私人的密钥文件放入您的本地~/.ssh
目录并确保只有您可以读取它。
进一步编辑以添加
这个答案提到了ssh-copy-id
可以替代我提到的所有手动编辑的实用程序。这很不错。改用它。