为了更高等级的服务器安全,一般情况下我们都不让服务器使用账号密码来登录,下面我们来看一下怎么样使用私钥来免密登录。
#添加用户
登录服务器后创建用户,如:
adduser testuser
#设置权限
如果需要给该用户root权限,则可将用户加入到sudoers中:
chmod -v u+w /etc/sudoers 将文件设置为可写
在## Allow root to run any commands anywhere 行中添加
testuser ALL=(ALL) NOPASSWD: ALL
chmod -v u-w /etc/sudoers 将文件改为只读
#生成密码
切换用户到刚才新创建的用户上:
su testuser
ssh-keygen -t rsa
使用默认的生成密钥位置
设置密钥相应的密码
输入密码后密钥将会生成保存在/home/testuser/.ssh/目录下
ll
id_rsa.pub 公钥,将改名后存储在服务器端
id_rsa 私钥,将用来在客户端设备上用来做为登录凭证
mv id_rsa.pub authorized_keys 将公钥改名
#配置服务器端免密登录
vi /etc/ssh/sshd_config
修改或添加以下内容:
RSAAuthentication yes
StrictModes no. (这个可选)
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如果想禁止root登录或是禁止账号密码登录可以做以下设置:
PermitRootLogin yes
PasswordAuthentication yes
设置完成后重启sshd服务:
systemctl restart sshd.service
在客户端(MAC OS为例)使用终端这样登录:
ssh -i /Users/xxx/keys/id_rsa root@111.111.222.333
按提示输入私钥的密码即可登录成功,为避免重启后需要再次输入私钥密码请参照本人的另外一篇文章。