Mac上SSH秘钥对认证登录服务器

前言:秘钥对认证登录的原理


    在本地设备中创建一对秘钥,其中一个是私钥(保存在本地设备中),另一个是公钥(传到远程服务器中)。使用SSH秘钥对认证方式登录远程设备时,远程设备会随机创建一个消息,使用公钥加密,然后把密文发送给本地设备。本地设备收到密文后使用私钥解密,然后把解密后的消息发送给远程服务器,远程服务器验证解密后的消息之后,再赋予你访问服务器的权限。

 

所以根据原理步骤是:

    1:在本地设备中生成秘钥对

    2:把秘钥对的公钥放到远程服务器(注意这里面有坑:主要是权限问题)

    3:在本地设备中配置config 设置关键词登录

    4:在远程服务器上设置禁止密码登录


一:生成秘钥对

ssh-keygen

    一路敲下去 id_rsa私钥   id_rsa.pub

时光疯子博客



二:复制公钥到远程服务器


    如果用户是root 没有改ssh链接端口 默认端口是22 

scp  id_rsa.pub root@111.111.111.22:~/id_rsa.pub

#用密码登录远程服务器  确认~/.ssh目录是否存在,如果不存在,执行下面命令
mddir ~/.ssh

#确认~/.ssh/authorized_keys文件是否存在,如果不存在,执行下面命令
touch ~/.ssh/authorized_keys

#authorized_keys 这个文件的内容是允许登录这台远程服务器的公钥,把刚上传的公钥添加到这个文件中
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

#修改authorized_keys的权限,确保让登录的用户能访问 ~/.ssh目录 和 ~/.ssh/authorized_keys文件
chown -R root:root ~/.ssh   #如果是其他用户  chown -R William:William ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

    

    注意:如果authorized_keys  已有其他设备添加的公钥 cat追加另一台设备的公钥时要进行换行     


    如果是禁用root用户 改了端口 就这么登录

    

scp -P 6666 id_rsa.pub William@111.111.111.22:~/.ssh/id_rsa.pub

    

三:设置关键词登录

    1:config为了方便我们批量管理多个ssh

    2:config存放在 ~/.ssh/config 如果不存在 添加

            
            touch config

    3:config配置语法

        Host : 别名

        HostName :主机名

        Port:端口

        User:用户名

        IdentityFile:私钥文件的路径

    

    4:示例

host "contect1"
        Hostname 111.111.111.22
        User root
        Port 22
        IdentityFile ~/.ssh/id_rsa
        IdentitiesOnly yes

        

四:远程服务器禁止密码登录

vim /etc/ssh/sshd_config
PasswordAuthentication no  #把yes改成no
service sshd restart




白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论