两台远程 Linux 机器之间的连接

两台远程 Linux 机器之间的连接

我有两台远程计算机,我正在其中一台上运行脚本。
脚本的某些部分应该在另一部分上运行,然后脚本将继续执行其进一步的任务/命令。
由于某些原因,我无法建立ssh-without-password连接,此外,我不希望出现任何密码提示。

注意:我在他们之间共享了坐骑。

答案1

避免 SSH 密码提示:

sudo apt-get install sshpass

软件包安装的替代工具是dpkg

下载sshpassdeb包

并安装它:

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.

有关该主题的更多信息以及如何操作,请参阅:

https://help.github.com/articles/generate-ssh-keys。

答案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服务器的密码了。

相关内容