首页 > 代码库 > linux上如何设置ssh免密登陆

linux上如何设置ssh免密登陆

一.linux上ssh链接

1、功能说明

scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下:

scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径 

scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名

scp使用第一种格式是将远程Linux系统上的某个文件或者目录拷贝到本地Linux系统上来,使用第二种是将本地的某个文件或者目录拷贝到远程Linux系统的某个路径下。

2、举例

(1)目前我们处在IP为“10.4.63.11”的Linux系统下,计划将系统下的/home/ai/maintain/target/maintain-1.0-SNAPSHOT.war

文件拷贝到IP为“10.4.62.94”的远程Linux系统中xdy用户下的/home/xdy/opt/目录下,并更名:

scp /home/ai/maintain/target/maintain-1.0-SNAPSHOT.war xdy@10.4.62.94:/home/xdy/opt/maintain.war

命令输入完毕,会要求输入“10.4.62.94”服务器xdy的密码,然后开始远程拷贝数据。

(2)将本地/etc目录中所有的文件和子目录拷贝到IP为“10.4.62.94”的远程Linux系统的root用户下的/opt目录中:

scp -r /etc xdy@10.4.62.94:/opt

这里的选项“r”与cp命令的“r”选项含义相同。

二.如何设置免密登陆

准备两台以上的Linux服务器

先使用ssh登录试一下,如果没有安装则需要先安装一下

ssh 10.4.63.11 会提示你输入密码

[ai@Database2 ~]$ ssh 10.4.63.11

ai@10.4.63.11‘s password: 

Last login: Mon Jan  9 10:40:29 2017 from 10.4.16.200

执行ssh-keygen -t rsa

这时.ssh目录下会生成私钥和公钥的键值对id_rsa,id_rsa.pub

再其他服务器上执行同样的命令生成文件(这里以一台为例)

[ai@Database2 ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/ai/.ssh/id_rsa):(一路回车) 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /home/ai/.ssh/id_rsa.

Your public key has been saved in /home/ai/.ssh/id_rsa.pub.

The key fingerprint is:

da:7d:0c:8d:bf:ba:d5:0b:89:53:ea:cd:bc:a5:87:e7 ai@Database2

The key‘s randomart image is:

+--[ RSA 2048]----+

|                 |

|                 |

|                 |

|           o     |

|        S o o    |

|       o . B o   |

|      . . = B.o  |

|         . B.=o. |

|          +oB=E  |

+-----------------+

将所有服务器上的公钥合并到一个文件authorized_keys中

cat id_rsa.pub >> authorized_keys

ssh xdy@10.4.62.94 cat /home/xdy/.ssh/id_rsa.pub >> authorized_keys

查看authorized_keys里面有多个server的公钥信息,如果你有多个server同样往里面加就好了

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAv97+Xzd2GRlmq3TcAMGn2gX8DJbUQ89f6H8A1ZA5goLYtJ//jLmItjkw5C8/B7HRRrsGsGvn8rHm7mCXDVjaiPuqKWodydaQUDJaGCG4U5I0piz20du563odt6Lgp5sWzoQkDt0aH2UC4c+U8ZDpI5uyw8ay+V60gYdpZC+BBs4tWk1EQtKOaGrHRKRcYxE11eMbFaf/ieVa50c0Tvw+PV9wUdFBY3f769bGhX/hYp5MqvgnTWJvTx5dj2vNYdIS7+maPgDM0Ym34pF+7BRvy4JpOXLxZJHpZohy1uxl+pbVscwXKhCSk+wNRkRNaH/BQ3hs5WczZWrc78l0YHggnQ== ai@Database2

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwcAVNHex5eZx2WpbRfwo2YcQEERHRyj6EIxerAq8ebvdBs+3aOyo3quTAIjtKYMx5jWkWcDTZOW2WQ8tKqOTn9Dedtb7gwhxPYIF8qcxWpZXINt92cJcgZSsMHAor+tqxupeej4CkePtuEjoNeAESiOenJ1YPbtEVC9ms5HUpxaiG41lIxFdCx6anJByvgnOZIdf97hQE5RpY+qmNBl2L5fAZN7JwxaKjmiTx6rkNzvs3K3swXk4524e8gPLXeD9VRKYeYT1zQHfy7PLmER8Lq2Y9mTSRP0mJ7UYfvvf8QqgWH+AZjjmoMTsn+HsdPf3UMXk9RbV3dYeeWO41WEaeQ== xdy@xxweb04


将authorized_keys、known_hosts分别复制到其他服务器的.ssh目录下

scp authorized_keys xdy@10.4.62.94:/home/xdy/.ssh/

scp known_hosts xdy@10.4.62.94:/home/xdy/.ssh/

[ai@Database2 .ssh]$ scp authorized_keys xdy@10.4.62.94:/home/xdy/.ssh/

xdy@10.4.62.94‘s password: 

authorized_keys                      100%  787     0.8KB/s   00:00    

[ai@Database2 .ssh]$ scp known_hosts xdy@10.4.62.94:/home/xdy/.ssh/

known_hosts                          100%  784     0.8KB/s   00:00    

[ai@Database2 .ssh]$

这时候再ssh登录,这时候就不用再输入密码啦。

scp /home/ai/maintain/target/maintain-1.0-SNAPSHOT.war xdy@10.4.62.94:/home/xdy/opt/maintain.war


本文出自 “梦Dream” 博客,请务必保留此出处http://dreamy.blog.51cto.com/12471447/1890537

linux上如何设置ssh免密登陆