Linux云服务器设置登录方式
更新时间:2023-08-01
背景
本文介绍了如何设置Linux服务器的登录方式(密钥登录和密码登录),以Centos7.6作为参考。
设置密钥登录
步骤一 在服务器中生成密钥对
执行"ssh-keygen -t rsa"在客户端生成密钥对,路径默认存储在/root/.ssh下,密码默认为空,如果需要设置密码和其他路径可以按照需求自行设置。
root@ins8o1pb:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:nBctW+aEbuFIDXeYQSmGqHAo4QFe6fWKjjBTBc9hL2Y root@instance-xh28o1pb
The key's randomart image is:
+---[RSA 2048]----+
|++.o+. ...+=. |
|* +=o+. o+++ |
|.=.oE o...* = |
| o+ . + = X |
| . . . S * . |
|+ . . o |
|.oo |
| . . |
| |
+----[SHA256]-----+
查看/root/.ssh/文件夹下文件,id_rsa 为私钥,id_rsa.pub 为公钥。
步骤二 在服务器上安装公钥
键入以下命令,在服务器上安装公钥。
root@ins8o1pb:~# cd .ssh
root@ins8o1pb:~# cat id_rsa.pub >> authorized_keys
如此便完成了公钥的安装,为了确保连接成功,请保证以下文件权限正确。
root@ins8o1pb:~# chmod 600 authorized_keys
root@ins8o1pb:~# chmod 700 ~/.ssh
步骤三 设置 SSH,打开密钥登录功能
- 编辑
/etc/ssh/sshd_config
文件,进行如下设置:
RSAAuthentication yes
PubkeyAuthentication yes
另外,请留意 root 用户能否通过 SSH 登录:
PermitRootLogin yes
- 当完成全部设置,并以密钥方式登录成功后,再禁用密码登录:
PasswordAuthentication no
- 最后,重启 SSH 服务。
root@ins8o1pb:~# service sshd restart
步骤四 将私钥下载到客户端
将私钥文件id_rsa拷贝到客户端。
- 在Windows上使用putty客户端登录Linux服务器
需要将私钥转换格式,打开 putty key generator 工具-->File -> Load private key,点击 save private key,则转换完毕,Windows下私钥一般以.ppk后缀结尾,比如另存为id_rsa.ppk。 - 使用Putty密钥登录,在填好服务器地址之后
需要在 Connection -> Data 界面,Auto-login username 填入用户名;
需要在 Connection -> SSh -> Auth 界面,Private key file for authentication, browse 选择私钥文件 id_rsa.ppk;
然后保存这些设置,最后点击 open,就可以直接登录到服务器中了。
设置密码登录
如果需要使用密码登录,直接将 /etc/ssh/sshd_config
下的PasswordAuthentication 改成yes即可。
PasswordAuthentication yes