利用系统自带工具快速实现SSH免密远程登录
2017-11-03 18:34
447 查看
一、软件环境
操作系统:CentOS Linux release 7.4.1708 (Core)
SSH版本
[root@Geeklp201 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
登录服务端IP:192.168.237.201
被登录服务端IP:192.168.237.202
192.168.237.203
二、问题背景
多台网络可达的服务器之间实现免密登录。本例中,以192.168.237.201为登录端,在本台机器上通过SSH免输密码登录远程被登录端的192.168.237.202和192.168.237.203。
三、实现过程
1、把当前工作目录切换到用户目录。
[root@Geeklp201 ~]# cd ~
2、看一下当前目录有没有.ssh子目录。
[root@Geeklp201 ~]# ls -al
3、没有.ssh子目录,创建该目录或者使用ssh登录一下任意一台服务器,ssh登录时(无论登录成功与否)会自动创建该目录。也可以直接跳过此步执行第4步,执行第四步的时候也会自动创建.ssh目录,ssh-keygen生成的公钥及私钥放入该目录下。这一步也可以说是画蛇添足。
mkdir .ssh或者ssh
root@192.168.237.202
4、生成相关私钥与公钥。
[root@Geeklp201 ~]# ssh-keygen -b 4096 -t rsa -Croot@192.168.237.201
命令执行完成之后,在当前目录会生成id_rsa和id_rsa.pub两个key文件。参数b指定key的长度,本例中指定的长度为4096。参数t指定加密算法,本例中使用的RSA加密算法。参数C可是邮件地址或域名等,会被添加到key的尾部,以示区分。
5、把生成的公钥分发到需要登录的服务器(被登录端)上。
[root@Geeklp201 .ssh]#ssh-copy-id -i id_rsa.pubroot@192.168.237.202
[root@Geeklp201 .ssh]#ssh-copy-id -i id_rsa.pubroot@192.168.237.203
按照提示分别输入被登录服务端的密码即可。
6、登录验证。从192.168.237.201登录192.168.237.202和192.168.237.203。
[root@Geeklp201 .ssh]# ssh root@192.168.237.202
[root@Geeklp201 .ssh]# ssh root@192.168.237.203
或者
[root@Geeklp201 .ssh]# ssh 192.168.237.202
[root@Geeklp201 .ssh]# ssh 192.168.237.203
登录成功,免密登录成功实现。
四、注意事项
1、公钥在向被登录端分发完成后在登录端可删除,但是私钥是不能删除的。如果删除了私钥,那么就需要输入密码才能登录成功。
2、公钥安装完成以后是可以卸载的,卸载命令为:ssh-keygen -R 192.168.237.203。
3、公钥的分发过程也可以使用scp来实现,不过没有ssh-copy-id简单、方便,但是要注意加参数i。
操作系统:CentOS Linux release 7.4.1708 (Core)
SSH版本
[root@Geeklp201 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
登录服务端IP:192.168.237.201
被登录服务端IP:192.168.237.202
192.168.237.203
二、问题背景
多台网络可达的服务器之间实现免密登录。本例中,以192.168.237.201为登录端,在本台机器上通过SSH免输密码登录远程被登录端的192.168.237.202和192.168.237.203。
三、实现过程
1、把当前工作目录切换到用户目录。
[root@Geeklp201 ~]# cd ~
2、看一下当前目录有没有.ssh子目录。
[root@Geeklp201 ~]# ls -al
3、没有.ssh子目录,创建该目录或者使用ssh登录一下任意一台服务器,ssh登录时(无论登录成功与否)会自动创建该目录。也可以直接跳过此步执行第4步,执行第四步的时候也会自动创建.ssh目录,ssh-keygen生成的公钥及私钥放入该目录下。这一步也可以说是画蛇添足。
mkdir .ssh或者ssh
root@192.168.237.202
4、生成相关私钥与公钥。
[root@Geeklp201 ~]# ssh-keygen -b 4096 -t rsa -Croot@192.168.237.201
命令执行完成之后,在当前目录会生成id_rsa和id_rsa.pub两个key文件。参数b指定key的长度,本例中指定的长度为4096。参数t指定加密算法,本例中使用的RSA加密算法。参数C可是邮件地址或域名等,会被添加到key的尾部,以示区分。
5、把生成的公钥分发到需要登录的服务器(被登录端)上。
[root@Geeklp201 .ssh]#ssh-copy-id -i id_rsa.pubroot@192.168.237.202
[root@Geeklp201 .ssh]#ssh-copy-id -i id_rsa.pubroot@192.168.237.203
按照提示分别输入被登录服务端的密码即可。
6、登录验证。从192.168.237.201登录192.168.237.202和192.168.237.203。
[root@Geeklp201 .ssh]# ssh root@192.168.237.202
[root@Geeklp201 .ssh]# ssh root@192.168.237.203
或者
[root@Geeklp201 .ssh]# ssh 192.168.237.202
[root@Geeklp201 .ssh]# ssh 192.168.237.203
登录成功,免密登录成功实现。
四、注意事项
1、公钥在向被登录端分发完成后在登录端可删除,但是私钥是不能删除的。如果删除了私钥,那么就需要输入密码才能登录成功。
2、公钥安装完成以后是可以卸载的,卸载命令为:ssh-keygen -R 192.168.237.203。
3、公钥的分发过程也可以使用scp来实现,不过没有ssh-copy-id简单、方便,但是要注意加参数i。
相关文章推荐
- winxp系统32位平台下利用oracle10g自带的DBCA(database configuration assistant)工具创建数据库
- qtp 订票用户登录脚本参数化实现循环播放(自带的Flight订票系统)
- 实现记录和查看用户的系统登录和退出历史和利用C#编写的网络聊天程序
- linux系统下无法用SecureCRT及putty工具远程登录系统方法
- 利用java实现可远程执行linux命令的小工具
- Win7快速实现自动登录系统
- 利用Windows自带磁盘清理工具给系统“瘦身”
- 利用SSH Filesystem实现远程文件系统
- Debian系统下利用vsdftpd+Mysql实现虚拟用户登录(Debian+vsftpd+Mysql)
- Ubuntu下通过sftp远程登录linux系统,并实现上传、下载文件
- iOS之利用系统自带API实现录音功能
- 利用现有资源快速实现汉语专用分词系统
- 利用P3P远程跨域保存cookie实现SSO单点登录功能
- Ubuntu下通过sftp远程登录linux系统,并实现上传、下载文件
- 文件快速搜索工具 比系统自带搜索好百倍!
- django 快速实现完整登录系统(cookie)
- WinSCP是个可以利用远程登录的ssh的图形话的工具。
- windows 系统自带分区工具实现无损分区
- 探究ftp的奥妙之系统用户如何上传下载文件、vsftpd如何识别证书并利用客户端来实现远程连接传输