【Linux】ssh远程时如何做到不用输入密码登入

1、首先登入一台linux服务器,此台做为母机(即登入其他linux系统用这台做为入口);执行一行命令生成key文件:ssh-keygen -t rsa

2、在母机上,进入/root/.ssh目录,找到id_rsa.pub该文件,这个文件就是刚才执行ssh-keygen所生成的公钥key文件。

3、用scp命令,将母机产生的key拷一份到远程的linux服务器上,并命名成authorized_keys;scp ~/.ssh/id_rsa.pub  root@192.168.1.113:/root/.ssh/authorized_keys。这一步的操作需要手动输入密码。

192.168.1.113为母机想要远程访问的主机ip;注意authorized_keys这个命名不要去修改;

4、现在为止,你已完成了所有的操作;可在母机通过ssh root@192.168.1.113 你会发现不在用输放密码了。相同的scp命令也是一样的情况,无需手动输入密码。

这么做了之后就方便我们写shell脚本在不同的主机上执行命令进行管理了:

 1 #!/bin/bash
 2 
 3 case $1 in
 4 "start"){
 5   for i in 8.129.222.20 42.192.19.88 106.13.16.97
 6   do
 7     echo "********$i********"
 8     ssh $i  "/opt/huawei/kafka/bin/kafka-server-start.sh -daemon /opt/huawei/kafka/config/server.properties"
 9   done
10 
11 };;
12 
13 "stop"){
14   for i in 8.129.222.20 42.192.19.88 106.13.16.97
15   do
16     echo "********$i********"
17     ssh $i  "/opt/huawei/kafka/bin/kafka-server-stop.sh"
18   done
19 
20 };;
21 
22 esac
 1 #!/bin/bash
 2 
 3 case $1 in
 4 "start"){
 5   for i in 8.129.222.20 42.192.19.88 106.13.16.97
 6   do
 7     echo "********$i********"
 8     ssh $i  "/opt/huawei/zookeeper/bin/zkServer.sh start"
 9   done
10 
11 };;
12 
13 "stop"){
14   for i in 8.129.222.20 42.192.19.88 106.13.16.97
15   do
16     echo "********$i********"
17     ssh $i  "/opt/huawei/zookeeper/bin/zkServer.sh stop"
18   done
19 
20 };;
21 
22 esac
原文地址:https://www.cnblogs.com/sheep9527/p/14352853.html