将密码添加到.ssh / config

我使用的是Ubuntu 12.04。 我使用ssh连接到许多服务器每天,所以我把他们的参数在.ssh /configuration文件; 喜欢这个 :

Host server1 User tux Port 2202 HostName xxx.x.xx.x 

有没有办法把密码放在这个文件中,对于每个连接? 所以当服务器要求密码的时候,terminal把它传给服务器,所以我不用每次input密码。 另外我不想使用公钥/私钥对。

不,没有方法可以通过非交互方式在命令行中指定或提供密码,以使用openssh内置机制进行sshauthentication。 至less不是我所知道的一个。 您可以将您的密码硬编码为期望的脚本,但它也不是一个好的解决scheme。

你肯定会希望使用密钥对进行无密码authentication,正如Michael所说,最后私钥在文件中是一个很大的密码。

为了避免一连串的评论:是的,这是不安全的(甚至可以说是不安全的)。 我强烈build议您只在实验室情况下在孤立networking上执行此操作,或者在没有完全重置/格式的情况下,不涉及生产服务器或生产服务器。

我想设置这个,因为我不认为我的2950交换机支持私钥/公钥,我希望在某个时候获得这些知识,但我还没有。

使用别名和sshpass可以完成。

  1. 安装sshpass
  2. 修改.ssh / config文件以包含问题中列出的用户名
  3. 添加一个别名到你的terminal(我使用.bashrc,并build议对gloabl设置)
  4. 使用别名login到目标

我的例子别名是:

 alias ssc='sshpass -pcisco ssh' 

其中“cisco”是密码。 请注意,-p和密码之间没有空格。

用法是(引用问题):

 ssc server1 

注意:这只回答那些使用search引擎的标题的问题。 如果您使用的是类似问题示例的服务器,则应使用私钥/公钥对,而不要使用此答案

是的,如上所述 – 没有办法简单地保存密码。 我会build议使用ssh密钥进行授权。

首先生成你的密钥:

 ssh-keygen 

然后在您的服务器/桌面上复制密钥:

 ssh-copy-id -i .ssh/id_rsa.pub user@ip-address: 

就这样。 永远不会再被要求input密码。

我也build议一般删除密码授权,但这取决于你。

有没有办法做到这一点与ssh,这是不安全的,因为它可以得到。

正如丹尼拉提到你可以使用期望的脚本,但我不打扰。

我想知道你想达到什么目的? 你想从一台服务器跳到另一台吗? 在这种情况下,您需要在工作站上设置和使用ssh-agent,并在目标主机上启用代理转发; 这样的证书交换将被路由到您的本地代理,而不必复制您的私钥。

您可以通过使用sshpass以更安全的方式执行此操作

  1. 设置您的密码没有历史

    导出PS = your_password ;历史-d $(历史1)

  2. 在〜/ .ssh / config中设置主机别名

  3. 使用ssh pass来使用环境variables并以单个命令login到所需的机器

sshpass -p $ PS ssh host_alias

您的环境持有您的密码,如果您不知道正在运行的任何脚本是否会泄露此密码,则存在风险