使用ssh密钥实现免密登陆Linux服务器

1 在服务器上生成ssh密钥

首先进入Linux系统的用户目录下的.ssh目录下,root用户是/root/.ssh,普通用户是/home/您的用户名/.ssh,我们以root用户为例:

使用ssh密钥实现免密登陆Linux服务器

密钥生成命令:

ssh-keygen -f /root/.ssh/daniel -t rsa -b 4096

# -f :生成密钥对的路径及文件命名,也可以不写如:ssh-keygen -t rsa
# -b :指定了长度,也可以不加

使用ssh密钥实现免密登陆Linux服务器

  • daniel:私钥,放在自己电脑上用来登录
  • daniel.pub:公钥,部署在服务器上用来校验
  • passphrase 是给私钥添加一个密码,也可以直接回车,不加密码

使用ssh密钥实现免密登陆Linux服务器

2、把公钥拷贝到需要登录的远程服务器或Linux系统上,这里可以使用ssh-copy-id自动完成,也可以手动追加秘钥到远程服务器。

方法一(推荐):

ssh-copy-id -i /root/.ssh/id_rsa.pub -p 1022 root@43.129.xxx.xxx

#-p :指定端口,不是默认端口(22)需要指定端口,如1022

 需要输入root的登陆密码确定。

方法二:

进入远程服务器需要SSH登录的用户的目录下,这里仍然用root用户,cd /root/.ssh,执行ls看看目录下是否有authorized_keys文件没有的话则执行以下命令创建:

touch authorized_keys

执行成功会创建空authorized_keys文件,授予600权限(注意:此处权限必须是600):

chmod 600 /root/.ssh/authorized_keys

如果已经有了authorized_keys文件,这直接执行以下的密钥追加工作。

将上面生成的公钥daniel.pub追加到authorized_keys文件中:

cat /root/.ssh/daniel.pub >> /root/.ssh/authorized_keys

使用ssh密钥实现免密登陆Linux服务器 

 

 3、对/etc/ssh/sshd_config 文件增加配置:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  /root/.ssh/authorized_keys

修改完配置后,一定要重启ssh

systemctl restart sshd

4、 密钥准备好了接下来就可以使用密钥登录了

在Windows系统上使用密钥的话要看您使用的工具是否支持密钥登录

使用ssh密钥实现免密登陆Linux服务器

命令登陆:

ssh -i ./daniel root@43.129.xxx.xxx
或者ssh root@43.129.xxx.xxx -i ./daniel

注意:daniel是私钥,这里是进入私钥的目录下操作的,如果没在私钥的目录下,请写全目录,比如/opt/daniel,也可以是您自定义的目录。执行命令过程中,如果创建密钥对的时候设置了密码,则会提示您输入密码,没有的话会直接登录。

上一篇:python-seleniu/八大定位方法详解


下一篇:元素定位