本地配置SSH 登录服务商

本地配置SSH 登录服务商

1. 创建ssh公钥和私钥

在你的终端输入:

ssh-keygen

cd .ssh/

open ./

你就会看见 有两个文件:

  • ### id_rsa (这是用于你本地登录服务器的秘钥)
  • ### id_rsa.pub (这就是要给服务器配置你的公钥)

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

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

  • [适用于osx系统]使用ssh-copy-id-for-OSX工具将公钥复制至ssh服务器

    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文件

最后你可以开始登录了:

ssh-add ~/.ssh/id_rsa
ssh-add -l
ssh root@44.99.222.11 #root是你的服务器账户名,@后面是服务器IP

3. 用ssh 快捷登录远程服务器

每次都输入 名称和IP 很不爽 你可以这样搞:

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 #第一个步骤生成的公钥文件对应的私钥文件

敲下 :wq
保存文件退出后,即可使用别名登录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服务器