密钥准备

生成RSA密钥

首先,在终端中利用以下命令

ssh-keygen -t rsa
20150817152113844

生成密钥时可以一路默认即可。可以选择为密钥增加密码(设置密码后,使用密钥时还需要输入密码)

进入密钥生成的目录,可以看见两个文件id_rsa和id_rsa.pub。

20150817152448361

id_rsa 为私钥,id_rsa.pub为公钥。私钥自己下载到本地电脑妥善保存(丢了服务器可就没法再登陆了),为安全,建议删除服务器端的私钥。公钥则可以任意公开。

将这两个文件下载下来,保存好为后面做准备。(这一对密钥可以用于登陆不同的服务器,所以登陆另一个服务器时,可以不用再次生成)

服务器端配置

添加公钥

在主目录中创建 authorized_keys ,并且设置权限,且将公钥 id_rsa.pub 的内容添加到  authorized_keys文件中

cd ~/.ssh/
# 将公钥的内容追加到authorized_keys中
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

配置

编辑sshd_config,将RSAAuthentication和PubkeyAuthentication两行前面的 # 去掉

vi /etc/ssh/sshd_config
20150817153322824

为了安全还可以修改默认的SSH端口,找到Port xx (默认22或者其他), 去掉前面的#,然后修改port后的数字。

20150817160613018

保存后重启SSHD服务(CentOS7中为systemctl restart sshd.service)

/etc/init.d/sshd restart

注:CentOS7中的firewall配置
firewall中默认ssh端口为22,在修改端口后需要对其进行设置才能正常登录

复制 firewalld 有关 sshd 的配置文件:

cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
vi /etc/firewalld/services/ssh.xml

修改<port protocol="tcp" port="22"/>,将“22”改为所需的端口

保存后重载sshd服务

firewall-cmd --reload

至此,服务端完毕。

客户端

接下来客户端使用

如:
server ip :  888.888.888.888
server port: 8888
用户名:userssh

使用一

客户端工具:SecureCRT

步骤

  1. 新建连接
HM-HLHHA95UT-O-A6F-W4GN
  1. 填写主机名,端口,用户名。将 鉴权 调整为公钥。
7-YGJ8Z3QD3XZY--JO5JXZD
  1. 然后点击 “属性“,选择私钥文件
C60-4B-F-KA1XOOO@OIVQ-G
  1. 连接远程主机
-7L3-Z69UY9-AQ-SZYLTSKT
C-ICLKBZ--H3Y5-MDK4WJ-5

使用二

  1. 将 私钥 文件放 ~/.ssh目录,权限 600
  2. 主目录 创建 ~/.ssh/config  权限 0600,添加以下配置
Host            hostname # 自定义远程登录的主机名称,可随便取名
  HostName        888.888.888.888 # 远程主机 IP
  Port            27904
  User			  root # 远程主机用户名
  IdentityFile    ~/.ssh/id_rsa # 私钥的文件路径

  1. 登陆:ssh hostname,这样就可以登陆了。