zoukankan      html  css  js  c++  java
  • Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥

    打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可。

    ssh-keygen -t rsa -C  'your email@domain.com'
    

    -t 指定密钥类型,默认即 rsa ,可以省略
    -C 设置注释文字,比如你的邮箱

    2. 将公钥复制到ssh服务器

    将前一步骤生成的公钥~/id_rsa.pub文件,复制到ssh服务器对应用户下的~/.ssh/authorized_keys文件,可以有多种方式,这里只介绍常用的三种。

    brew install ssh-copy-id
    ssh-copy-id username@hostname  #将username和hostname替换为你的ssh服务器用户名和IP
    
    • 当ssh服务器username用户目录下尚未有.ssh目录时使用此方式
    cat ~/.ssh/id_rsa.pub | ssh username@hostname "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
    
    • 通用方式
    scp ~/.ssh/id_rsa.pub username@hostname:~/ #将公钥文件复制至ssh服务器
    ssh username@hostname #使用用户名和密码方式登录至ssh服务器
    mkdir .ssh  #若.ssh目录已存在,可省略此步
    cat id_rsa.pub >> .ssh/authorized_keys  #将公钥文件id_rsa.pub文件内容追加到authorized_keys文件
    

    3. 快捷登录

    完成以上步骤后,即可使用以下命令直接登录ssh服务器,妈妈再也不用担心你记不住密码了

    ssh username@hostname #将username替换为你的ssh服务器用户名,hostname替换为服务器的ip
    

    但是,每次仍然需要输入ssh username@hostname,仍算不上最优的解决方案,要是能实现一键登录或一条命令登录最好不过了,下面来看看都有那些解决方法

    • ssh本身也提供了一种快捷的方式来解决这个问题,往~/.ssh/config配置文件添加你的ssh服务器信息即可
    vim ~/.ssh/config   #若没有该文件,直接新建即可
    

    添加文件内容格式如下:

    Host        alias #自定义别名
        HostName        hostname  #替换为你的ssh服务器ip或domain
        Port            port #ssh服务器端口,默认为22
        User            user #ssh服务器用户名
        IdentityFile    ~/.ssh/id_rsa #第一个步骤生成的公钥文件对应的私钥文件
    

    保存文件退出后,即可使用别名登录ssh服务器

    ssh alias #alias是你在~/.ssh/config文件配置的别名
    

    若有多个ssh账号需要配置,只要在~/.ssh/config空行再写即可,如下:

    Host        foo
        HostName        192.168.2.222
        Port            22
        User            test
        IdentityFile    ~/.ssh/id_rsa
    
    Host        alias
        HostName    hostname
        Port        port
        User        user
    
    • 如果你本地终端使用的是zsh,那就太简单不过了,直接给zsh添加一条别名
    echo "alias ssh-to-username='ssh username@hostname'" >> ~/.zshrc #将username和hostname替换为你的服务器信息
    source ~/.zshrc   #重新加载更改后的zshrc文件
    ssh-to-username   #使用别名,一条命令即可登录你的ssh服务器
    
    • 如果你本地终端使用的是iterm2还可以添加Profile实现一键登录,具体步骤此处略过

    下面关于SSH相关的文章您也可能喜欢,不妨参考下:

    Ubuntu 下配置 SSH服务全过程及问题解决 http://www.linuxidc.com/Linux/2011-09/42775.htm

    Ubuntu 14.04 下安装Samba 及SSH 服务端的方法 http://www.linuxidc.com/Linux/2015-01/111971.htm

    SSH服务远程访问Linux服务器登陆慢 http://www.linuxidc.com/Linux/2011-08/39742.htm

    提高Ubuntu的SSH登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm

    开启SSH服务让Android手机远程访问 Ubuntu 14.04  http://www.linuxidc.com/Linux/2014-09/106809.htm

    如何为Linux系统中的SSH添加双重认证 http://www.linuxidc.com/Linux/2014-08/105998.htm

    在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm

    Linux 上SSH 服务的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm

  • 相关阅读:
    Unity 2018 version class.jar path
    GitHub git
    QT install
    Android Studio 安装及汉化
    Unity 调用android
    JAVA 调用c++ 扩展 批评那些垃圾,
    JAVA java调用C++动态链接库dll,有详细过程。VS2015+Eclipse以及失败解决方案
    前端将数据转化为弹幕效果的实现方式
    css圣杯布局的实现方式
    浏览器缓存问题原理以及解决方案
  • 原文地址:https://www.cnblogs.com/YatHo/p/7484195.html
Copyright © 2011-2022 走看看