IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    mac下配置centos的ssh登录使用RSA公私钥

    wingyiulee发表于 2015-01-21 04:04:02
    love 0

    1. 在本地的mac生成密钥对

    OpenSSH 提供了ssh-keygen用于生成密钥对,不加任何参数调用即可:

    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/Users/user/.ssh/id_rsa):
    

    如果你以前没有生成过密钥对,直接回车就行(vi ~/.ssh/id_rsa检查下,避免覆盖,如果生成过,请输入新的文件名)。

    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /Users/user/.ssh/_rsa
    Your public key has been saved in /home/user/.ssh/id_rsa.pub.
    The key fingerprint is:
    8a:77:ec:a1:77:42:8d:5d:ab:17:33:ac:87:06:20:3c user@mbp101
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |   .             |
    |    E .     .    |
    |     o .S+ o .   |
    |     . o+ o *    |
    |    . o.+. + +   |
    |     . +o.* o    |
    |      ...+ o     |
    +-----------------+
    

    如果你不想每次连接时都被问及密码(它是用来解开特定的公钥),在创建密钥对的时候,你只须按 enter 作为密码。创建密钥对时,是否以密码加密纯粹是你的决定。如何你不将密钥加密,任何人夺得你的本地机器后,便自动拥有远程服务器的 ssh 访问权。此外,本地机器上的 root 能够访问你的密钥:但假若你不能信任 root(或者 root 已被攻占),你已经大祸临头。将密钥加密舍弃了不用密码的 ssh 服务器,来换取额外的安全,得来的就是输入密码来使用这条密钥。

    注意:在这里我并没有默认使用id_rsa,因为我的id_rsa已经有了东西,所以我用了xxx_rsa,这里需要额外配置~/.ssh/config

    加入

    Host yongyao.li
            User xxx
            Hostname yongyao.li
            PreferredAuthentications publickey
            IdentityFile ~/.ssh/yongyaoli_rsa
    

    使ssh能正确查找到私钥,而且我为私钥设置了密码,在登录时mac的keychain会弹出,输入后keychain会记住,不用每次都输入私钥保护密码。

    2. 上传密钥

    把你的公钥用scp或者sftp上传到了远程远程ssh服务器,并把公钥的内容追加到ssh服务器的 ~/.ssh/authorized_keys:

    $ scp ~/.ssh/id_rsa.pub user@host:
    $ ssh root@host
    $ cat id_rsa.pub >> ~/.ssh/authorized_keys
    

    3. ~/.ssh 相关文件权限

    现在为本地mac的私钥设置权限:

    $ chmod 700 ~/.ssh
    $ chmod 600 ~/.ssh/id_rsa

    设置centos服务器上的文件权限:

    $ chmod 700 ~/.ssh
    $ chmod 600 ~/.ssh/authorized_keys

    如果 /etc/ssh/sshd_config 内的 StrictModes 被启用(缺省值),以上的权限是必须的。

    4.一旦你检查过可以用密钥对来登录服务器,你可以在你的centos服务器的 /etc/ssh/sshd_conf 内加入以下设置来停用口令验证:
    # 停用口令验证,强制使用密钥对

    PasswordAuthentication no
    

    重启sshd

    # service sshd restart
    

    这是换一台机器或者虚拟机进行登录,会提示以下

    # ssh xxx@yongyao.li
    Permission denied,  (publickey,gssapi-keyex,gssapi-with-mic)
    

    The post mac下配置centos的ssh登录使用RSA公私钥 appeared first on wingyiu.



沪ICP备19023445号-2号
友情链接