你能在.ssh/config中设置密码以允许自动登录吗?
我使用Ubuntu 11.10。我每天使用ssh
连接许多服务器,所以我把它们的参数放在.ssh/config
文件中,像这样。
Host Home
User netmoon
Port 22
HostName test.com
有没有办法把每个连接的密码放在这个文件里,这样,当服务器要求输入密码时,终端就会输入其密码并发送给服务器?
我需要这样做,因为有时我站在远离电脑的地方,当我回去时,输入密码并按下Enter,终端就会说`连接关闭'。
P.S. 我不想使用公钥/私钥对。
93
3
如果你不是真的想使用公钥/私钥对,你可以写一个`期望'脚本,根据目标地址自动为你输入密码。
编辑:我的意思是,你可以有一个脚本,一方面使用
expect
为你输入密码,另一方面从配置文件中读取特定用户和主机的密码。例如,下面的python脚本将适用于晴天的情况。而配置文件的格式将如下。
注意:正如所解释的,为了处理所有可能的错误和来自ssh的问题信息以及所有可能的URL,python脚本需要复杂得多(在这个例子中,假定它将是类似
user@host
的东西,但用户部分在大多数情况下是不用的),但基本思路仍然是一样的。关于配置文件,你可以使用一个不同的配置文件,或者使用.ssh/config
并编写你自己的代码来解析该文件并获得指定用户和主机的密码。不,这恐怕是不可能的,我不知道。
唯一真正的选择是使用私钥,但你已经说过你不想这样做(为什么不呢)。
@BrunoPereira对[这个问题]的回答(https://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login)显示了另一种无需明确输入密码和避免使用ssh密钥的连接方法。
你可以在你的
~/.bashrc
中创建一个脚本、一个别名或一个函数来快速执行该命令。显然,这种方法有一些安全方面的考虑,你应该考虑到。