首页 > 代码库 > 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免密登陆