如何使用密码自动进行 SSH 登录?

如何使用密码自动进行 SSH 登录?

如何自动使用密码进行 SSH 登录?我正在配置我的测试虚拟机,因此不考虑严格的安全性。选择 SSH 是为了以最低配置实现可接受的安全性。

前任)

echo password | ssh id@server

这不管用。

我记得我按照别人指导我的一些技巧做到了这一点,但现在我记不起我使用了什么技巧……

答案1

$ sudo apt-get install sshpass
$ sshpass -p your_password ssh user@hostname

答案2

虽然你的问题的正确答案是密码详情请参阅其他答案),还有一种更安全的方法 - SSH 密钥。你只是三个简单步骤远离解决方案:

以下所有命令都在客户端运行,即你的机器

输入以下命令开始生成rsa 密钥对

# ssh-keygen

当出现消息“输入要保存密钥的文件”时,只需按 Enter 键将文件名留空。

当终端要求您输入密码时,留空即可(警告:请阅读下文)并按 Enter。

然后将密钥对复制到服务器上一个简单的命令

# ssh-copy-id userid@hostname

您现在可以登录没有密码

# ssh userid@hostname

警告:即使您加密了整个驱动器,将 SSH 密钥暴露在外而不加密也不是一个好习惯。更安全的方法是,在生成密钥时实际输入密码,然后使用 Keychain(MacOS、Linux)或 SSH 代理记住密码,直到您退出、暂停或超时(具体取决于您的喜好)。

答案3

使用期望:

#!/usr/bin/expect -f
#  ./ssh.exp password 192.168.1.11 id
set pass [lrange $argv 0 0]
set server [lrange $argv 1 1]
set name [lrange $argv 2 2]

spawn ssh $name@$server
match_max 100000
expect "*?assword:*"
send -- "$pass\r"
send -- "\r"
interact

例子:

# ./1.ex password localhost ooshro
spawn ssh ooshro@localhost
ooshro@localhost's password: 
Linux ubuntu-1010-server-01 2.6.35-25-generic-pae #44-Ubuntu SMP Fri Jan 21 19:01:46 UTC 2011 i686 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/
Last login: Tue Mar  1 12:41:12 2011 from localhost

答案4

我很惊讶没有人提到Ubuntu 中的plink软件包putty-tools

plink user@domain -pw mypass  [cmd]

它也适用于 Windows,并且语法与 openssh 客户端基本兼容。

相关内容