密钥准备
生成RSA密钥
首先,在终端中利用以下命令
ssh-keygen -t rsa
生成密钥时可以一路默认即可。可以选择为密钥增加密码(设置密码后,使用密钥时还需要输入密码)
进入密钥生成的目录,可以看见两个文件id_rsa和id_rsa.pub。
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
为了安全还可以修改默认的SSH端口,找到Port xx (默认22或者其他), 去掉前面的#,然后修改port后的数字。
保存后重启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
步骤
- 新建连接
- 填写主机名,端口,用户名。将 鉴权 调整为公钥。
- 然后点击 “属性“,选择私钥文件
- 连接远程主机
使用二
- 将 私钥 文件放 ~/.ssh目录,权限 600
- 主目录 创建 ~/.ssh/config 权限 0600,添加以下配置
Host hostname # 自定义远程登录的主机名称,可随便取名
HostName 888.888.888.888 # 远程主机 IP
Port 27904
User root # 远程主机用户名
IdentityFile ~/.ssh/id_rsa # 私钥的文件路径
- 登陆:
ssh hostname
,这样就可以登陆了。