服务器环境:阿里云云服务器,Linux版本 - CentOS

    客户端环境:Mac OSX Terminal

    在Terminal中用ssh命令登录服务器每次都要输入密码,虽然可以复制/粘贴密码,但登录后一段时间不操作,服务器会自动断开连接,连接时又要复制/粘贴密码,还是有些不方便。

    有没有办法实现登录时不用输入密码呢?有办法,这篇博文分享的就是解决方法。

    不输入密码,服务器如何验证客户端呢?通过证书,证书就像你进办公室门时的门卡。客户端登录时,拿门卡(证书)在服务器上刷一下(证书验证),服务器会检查这张门卡能不能开门。

    那如何制作门卡,如何把门卡信息告诉服务器呢?用下面的操作步骤来回答这个问题。

    1. 打开你放门卡的皮夹

    cd ~/.ssh/

    如果没有皮夹,去买一个:

    mkdir ~/.ssh

    1. 制作门卡

    ssh-keygen -t rsa

    默认门卡文件名:id_rsa.pub

    1. 后来才知道3-6步骤可以用下面的一行命令取代

    a)Mac

    ssh user@server "echo \"cat .ssh/id_rsa.pub\" >> .ssh/authorized_keys"

    b)Linux 或 Windows 上的 git bash

    ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

    3. 将门卡复制一个并放至服务器的皮夹

    scp id_rsa.pub username@server:~/.ssh/id_rsa.pub

    注:如果服务器上没有.ssh文件夹,需要先登录服务器进行创建。

    4. 登录到服务器(需要输入密码),从服务器皮夹中拿出门卡,取出其中的信息,放到专用的夹层

    ssh username@server

    cd ~/.ssh
    cat id_rsa.pub >> authorized_keys

    5. 销毁服务器皮夹中的门卡

    rm id_rsa.pub

    6. 退出服务器

    exit

    1. 再次登录时就无需输入密码

    ssh username@server
    Welcome Houyi VM System !
    [root@aliyun-cnblogs ~]#

    无密码ssh登录就这么简单!