linux上如何设置ssh免密登陆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]:/home/xdy/opt/maintain.war

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

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

scp -r /etc [email protected]:/opt

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

二.如何设置免密登陆

准备两台以上的Linux服务器

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

ssh 10.4.63.11 会提示你输入密码

[[email protected] ~]$ ssh 10.4.63.11

[email protected]‘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

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

[[email protected] ~]$ 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 [email protected]

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 [email protected] 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== [email protected]

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwcAVNHex5eZx2WpbRfwo2YcQEERHRyj6EIxerAq8ebvdBs+3aOyo3quTAIjtKYMx5jWkWcDTZOW2WQ8tKqOTn9Dedtb7gwhxPYIF8qcxWpZXINt92cJcgZSsMHAor+tqxupeej4CkePtuEjoNeAESiOenJ1YPbtEVC9ms5HUpxaiG41lIxFdCx6anJByvgnOZIdf97hQE5RpY+qmNBl2L5fAZN7JwxaKjmiTx6rkNzvs3K3swXk4524e8gPLXeD9VRKYeYT1zQHfy7PLmER8Lq2Y9mTSRP0mJ7UYfvvf8QqgWH+AZjjmoMTsn+HsdPf3UMXk9RbV3dYeeWO41WEaeQ== [email protected]


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

scp authorized_keys [email protected]:/home/xdy/.ssh/

scp known_hosts [email protected]:/home/xdy/.ssh/

[[email protected] .ssh]$ scp authorized_keys [email protected]:/home/xdy/.ssh/

[email protected]‘s password: 

authorized_keys                      100%  787     0.8KB/s   00:00    

[[email protected] .ssh]$ scp known_hosts [email protected]:/home/xdy/.ssh/

known_hosts                          100%  784     0.8KB/s   00:00    

[[email protected] .ssh]$

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

scp /home/ai/maintain/target/maintain-1.0-SNAPSHOT.war [email protected]:/home/xdy/opt/maintain.war


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

以上是关于linux上如何设置ssh免密登陆的主要内容,如果未能解决你的问题,请参考以下文章

Linux终端设置免密登陆ssh(以 XShell 为例)

ssh免密登录

linux下用ssh登录后如何退出?

Linux密钥登陆

ssh localhost 配置免密登陆仍需要密码的解决方法

Ubuntu 配置 ssh 登陆