本地创建公钥
首先在本地机器生成自己的ssh登录所需要的公钥,具体命令如下:
ssh-keygen -t rsa -b 4096
然后,检查.ssh/目录下是否已经有了id_rsa.pub文件。
cat .ssh/id_rsa.pub
服务创建新用户
在服务器上创建一个新的用户,比如:newuser,具体命令如下:
adduser newuser
然后,设置该用户的密码,执行如下命令:passwd newuser
(可选)接着,将该用户加入到/etc/sudoers文件中。
在sudoers文件中找到
root ALL=(ALL) ALL # 后面换行并将当前用户添加进去
newuer ALL=(ALL) ALL;
新增
newuser
的这一行就是将我们新建的用户newuser
赋予 sudo 超级用户权限如果希望这个登录用户只是作为一个登录到远端服务器的一个跳板,而不给予其更多权限的话,可以不进行这步“添加到sudoers”的操作
拷贝公钥
在本地机器上将公钥拷贝到远端服务器上,具体命令如下:
ssh-copy-id newuser@<<youur server ip>>
这里的
newuser
是之前操作步骤中在远端服务器新建的用户, 并可能需要输入其密码进行连接确认
修改服务器sshd的配置文件
将最后三行中的两行改为如下:PasswordAuthentication no # 禁止通过密码登录 PermitRootLogin no # 禁止直接使用root用户登录
重启sshd服务,执行如下命令:
systemctl restart sshd
检查下/root/.ssh/目录下的authroized_keys是否有不知名的公钥,如果有的话记得删除了。
注意不要删除了以上步骤添加的公钥。
测试连接
在拷贝完公钥时其实命令行就已经会提示可以进行 ssh 连接了,而不需要输入密码;
ssh newuser@<<youur server ip>>