之前记录过一篇有关服务器打开ssh功能的文章:deepin开启ssh远程登录
如果是用脚本操作登录服务器做操作的话,ssh可以支持配置秘钥免密登录的形式,也可以使服务器彻底关闭密码登录的形式来避免被暴力破解登录。
服务器生成秘钥对
在服务器执行ssh-keygen
zhaohy@zhaohy-VC66-C:~$ ssh-keygen <== 建立密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhaohy/.ssh/id_rsa): <== 按 Enter
Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
Enter same passphrase again: <== 再输入一遍密钥锁码
Your identification has been saved in /home/zhaohy/.ssh/id_rsa <== 私钥
Your public key has been saved in /home/zhaohy/.ssh/id_rsa.pub <== 公钥
The key fingerprint is:
SHA256:1cCa4NpOeNDK8TE4YBfOAXyH79K2ihPe2BDdj5DkPyQ zhaohy@zhaohy-VC66-C
The key's randomart image is:
+---[RSA 3072]----+
| ...oo .. |
| +o=.o .o |
| . BoO . o. . |
| . E O o. |
| o ^ =S |
| o * % . |
| . * * o |
| +.o o |
| .... |
+----[SHA256]-----+
上面的密钥锁码如果直接按enter就能实现无密码登录了,可以看到密钥对在用户目录的.ssh文件夹下。
服务器安装公钥
在服务器用户目录下.ssh文件夹下把公钥写入authorized_keys文件
zhaohy@zhaohy-VC66-C:~$ cd .ssh
zhaohy@zhaohy-VC66-C:~/.ssh$ cat id_rsa.pub >> authorized_keys
给authorized_keys文件和.ssh文件设置权限
zhaohy@zhaohy-VC66-C:~/.ssh$ chmod 600 authorized_keys
zhaohy@zhaohy-VC66-C:~/.ssh$ cd ../
zhaohy@zhaohy-VC66-C:~$ chmod 700 .ssh
编辑 /etc/ssh/sshd_config 文件,打开密钥登录功能
RSAAuthentication yes
PubkeyAuthentication yes
设置root用户能否通过ssh登录,可根据实际需求情况设置
PermitRootLogin yes
可以禁用密码方式登录(根据自身实际需求设置):
PasswordAuthentication no
重启服务器ssh服务:
service sshd restart
本地客户端配置好私钥即可免密登录服务器
一般连接工具选择秘钥登录方式后都有上传私钥的按钮,只要把服务器生成的私钥下载下来,登录的时候选择一下就可以了,比较简单,这里着重介绍一下linux命令行登录配置私钥。
把服务器上生成的私钥下载到本地linux客户端的.ssh文件夹下,设置权限:
zhaohy@zhaohy-VirtualBox:~$ chmod 600 .ssh/id_rsa
zhaohy@zhaohy-VirtualBox:~$ chmod 700 .ssh
如此就能通过 ssh zhaohy@192.168.0.116或sftp zhaohy@192.168.0.116来直接登录服务器了。
网友评论