1

我想使用 ssh 密钥认证。我有一个文件,其中包含:

ip位置

ip位置

ETC

我有一个 bash 脚本如下:

 declare -A mylist
 declare -A myarray

 i=1

while read line ; do

        mylist[$i]=$(echo $line | awk '{print $1}')
        myarray[$i]=$(echo $line | awk '{print $2}')

((i++))

done <file.conf

for ip in "${mylist[@]}"; do
 for location in "${myarray[@]}" ; do

        ssh ${ip} tail -f ${location} > /home/log_${ip} 2>/dev/null &


 done

done

当我这样做时,它一直要求我输入密码。我不知道如何生成密钥,请你告诉我步骤。

4

3 回答 3

5

以普通用户身份从您的主机执行以下命令。这将为该主机上的该用户生成一个公私钥。

ssh-keygen

默认情况下,密钥将在 ~/.ssh 下创建,通常命名为 id_rsa(私钥) id_rsa.pub(公钥) 现在可以将公钥复制到任意数量的远程计算机,并进一步安全登录这些计算机主机不会提示输入密码。

ssh-copy-id user@machine
于 2013-10-28T02:49:22.247 回答
0

如果您想使用您的密钥打开一个 ssh 会话而不必输入密码,我认为这就是您要寻找的: http ://www.linuxproblem.org/art_9.html

于 2013-10-28T02:38:39.973 回答
0

如果您不想使用密码并且安全性不重要,另一种解决方案是使用sshpass.

这通常不是一个好主意,特别是在安全环境中,但在某些情况下它可以提供帮助。

sshpass -p raspberry ssh pi@192.168.0.145

这可以与

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no pi@192.168.0.145

避免出现阻止自动脚本编写的确认问题。

同样,仅在不同机器共享 IP 且安全性不重要的开发系统中使用它。

https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/

于 2017-03-01T13:05:21.597 回答