我有两台远程计算机,我正在其中一台上运行脚本。
脚本的某些部分应该在另一部分上运行,然后脚本将继续执行其进一步的任务/命令。
由于某些原因,我无法建立ssh-without-password
连接,此外,我不希望出现任何密码提示。
注意:我在他们之间共享了坐骑。
答案1
避免 SSH 密码提示:
sudo apt-get install sshpass
软件包安装的替代工具是dpkg
并安装它:
sudo dpkg -i sshpass_1.04-1_amd64.deb
使用模式如下:
sshpass -p mypassword ssh user@server
如果需要避免sudo
密码提示:
ssh [email protected] "echo sudo_password | sudo -S ./script.sh"
最后一个的解释是:在ssh 之后运行,它永远不会在远程服务器上sudo
输入密码,因此解决方案是使用 -S 并通过管道为 sudo 传递密码,如上所述。sudo
答案2
对于无密码登录,您应该创建一个SSH Keygen
.
有关该主题的更多信息以及如何操作,请参阅:
答案3
a.首先以用户a登录A,生成一对认证密钥
b.现在使用ssh在B上以用户b创建一个目录~/.ssh。(该目录可能已经存在,这很好)
ssh b@B mkdir -p .ssh
b@B的密码
C。最后将 a 的新公钥附加到 b@B:.ssh/authorized_keys 并最后一次输入 b 的密码:
cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B的密码: d. ssh b@B 现在不需要输入B服务器的密码了。