1. 远程主机生成SSH密钥

[root@vultr ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
#使用默认路径/root/.ssh/id_rsa,回车即可
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
#可以输入密码,那么在使用公钥的时候就需要密码,也可以不用密码,回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:gybY3+dupIEoFf/6/jYZsQW8ArNEnj6voHTAx6TZ2/A root@vultr.guest
The key's randomart image is:
+---[RSA 2048]----+
|     ..  .       |
|    ..+.  o      |
|    .+o+   o     |
| . O..o.. o .    |
|  *.B.=oS. +     |
|  .o.O.+o.+      |
|  ..+ E.o+.o     |
| . o ....o=      |
|  .   .oo=+.     |
+----[SHA256]-----+

[root@vultr .ssh]# ll /root/.ssh/
total 8
-rw-------. 1 root root 1675 Nov 16 05:56 id_rsa
-rw-r--r--. 1 root root  398 Nov 16 05:56 id_rsa.pub
#id_rsa为私钥
#id_rsa.pub为公钥

2. 修改远程主机ssh配置

#修改以下配置项,没有的添加
[root@vultr .ssh]# vi /etc/ssh/sshd_config
…………
#修改ssh端口,也可以不修改,默认22
Port 60022
#允许rsa验证登录
RSAAuthentication yes
#允许公钥验证登录
PubkeyAuthentication yes
#验证文件路径
AuthorizedKeysFile      .ssh/authorized_keys
#禁止使用密码登录
PasswordAuthentication no 

注意
如果修改了端口,注意修改防火墙端口

#确认firewall是否启用
[root@vultr .ssh]# firewall-cmd --state
running

#查看已打开的端口
[root@vultr .ssh]# firewall-cmd --list-port

#新增ssh端口,--permanent 保证永久生效
[root@vultr .ssh]# firewall-cmd --zone=public --add-port=60022/tcp --permanent   
success

#重启防火墙
[root@vultr .ssh]# firewall-cmd --reload
success

[root@vultr .ssh]# firewall-cmd --list-port
60022/tcp

3. 本地客户端主机生成ssh公钥

针对mac或者ubuntu等类Unix操作系统, 可以按照上面的方法一样生成。
例如在mac上

[yihuaiyuan@~]$ cd ~/.ssh
[yihuaiyuan@.ssh]$ ll
total 32
-rw-------  1 yihuaiyuan  staff  1679 11 18  2017 id_rsa
-rw-r--r--  1 yihuaiyuan  staff   407 11 18  2017 id_rsa.pub
-rw-r--r--  1 yihuaiyuan  staff  7365 10 21 17:05 known_hosts
[yihuaiyuan@.ssh]$

对于windows操作系统,同样可以在cmd上执行命令"ssh-keygen -t rsa"
来生成。

除此之外, 使用终端工具连接远程Linux主机的情况下, 一些终端工具是支持在工具里生成公钥的,比如SecureCRT:

image

任意打开一个连接界面,选择公钥登录方式。

然后再图上标记数字3处,可以选择修改公钥文件的保存路径,然后点击数字4标记的create创建。

image
然后添加Export Public Key, 可以看到公钥内容,复制到粘贴板,下面会用到。

对于通过命令行创建的公钥来说,同样可以打开文件,复制公钥内容到粘贴版。

[yihuaiyuan@.ssh]$ cat ./id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUWIU9q76FjZ1HHC174f1JoIIXjX/5p5GSJLE41Ig4Pa5CSnW78F3G6UnnhLgW5GfOuWKTjvUNih1o6VkJfx7ZZf7g6SI2hO1KUicWScVi6qAtOha9S86SAYoNGxkqXGm7AiBnT7uQYD9q3FRIGxPhHZW/NoPBXGM22cwBWcU2Ho03ZNHjRQ0HF+0kRToppB2kmHEd11QzdwY/nb3vPQxtJ2J2y1gSOIiV9HnOW9l9gFQY+Pu1xBiB36LvOZLGFIn0lPCWAbWdG9Ujn7qbZdcKC9+YWMKeXfqOJi8j626FJEtpKFv3mliylggLq+AySbcsFgd051uL yihuaiyuan@kuaidihelp.com

4. 在远程主机上注册本地的公钥

#将本机的公钥写入认证文件,因为是第一个,所以直接使用cp命令
[root@vultr .ssh]# cp -p id_rsa.pub authorized_keys

#将客户机的公钥写入到认证文件,就是上面让放到粘贴板中的内容
[root@vultr .ssh]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUWIU9q76FjZ1HHC174f1JoIIXjX/5p5GSJLE41Ig4Pa5CSnW78F3G6UnnhLgW5GfOuWKTjvUNih1o6VkJfx7ZZf7g6SI2hO1KUicWScVi6qAtOha9S86SAYoNGxkqXGm7AiBnT7uQYD9q3FRIGxPhHZW/NoPBXGM22cwBWcU2Ho03ZNHjRQ0HF+0kRToppB2kmHEd11QzdwY/nb3vPQxtJ2J2y1gSOIiV9HnOW9l9gFQY+Pu1xBiB36LvOZLGFIn0lPCWAbWdG9Ujn7qbZdcKC9+YWMKeXfqOJi8j626FJEtpKFv3mliylggLq+AySbcsFgd051uL yihuaiyuan@kuaidihelp.com">>~/.ssh/authorized_keys 

如果有多个客户机连接,依次把公钥文件加入认证文件即可。

5. 重启Linux的ssh服务

#在centos7中
[root@vultr .ssh]# systemctl restart sshd.service
#新端口已开启
[root@vultr .ssh]# netstat -anpt |grep 60022|grep LISTEN
tcp        0      0 0.0.0.0:60022           0.0.0.0:*               LISTEN      22716/sshd          
tcp6       0      0 :::60022                :::*                    LISTEN      22716/sshd

验证登录

image

Authentication选择PublicKey,然后选择已经注册到服务器的公钥文件。

image

在命令行:

#使用 -i 参数选择本地的私钥文件来认证登录。
[yihuaiyuan@.ssh]$ ssh -i /Users/yihuaiyuan/.ssh/id_rsa root@207.*.*.* -p 60022
The authenticity of host '[207.*.*.*]:60022 ([207.*.*.*]:60022)' can't be established.
ECDSA key fingerprint is SHA256:MO2HDKCF1nO0ZHaQ70SlE6xkxm65zOV6pJtxcI0JsBA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[207.*.*.*]:60022' (ECDSA) to the list of known hosts.
Last login: Fri Nov 16 07:04:05 2018 from 218.*.*.*
[root@vultr ~]#

标签: none

添加新评论