文章目录
  1. 1. 引言
  2. 2. SSH 配置
  3. 3. 简单使用
    1. 3.1. 案例一
    2. 3.2. 使用代理
  4. 4. FQA

引言


SSH (Secure Shell) 是一种在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境。维基百科-SSH

SSH 配置


0、在终端输入 cd ~/.ssh , 若提示没有此目录,可输入 mkdir ~/.ssh 创建 .ssh 目录,然后再执行 cd ~/.ssh 进入 .ssh 目录,再输入以下命令:

1
2
3
$ ssh-keygen -t rsa -C "userEmail"
or
ssh-keygen -t rsa -b 4096 -C "[email protected]"

如果同时使用多个公私密钥,可以将 SSH KEY 文件命名为 github 进行区分。

1
$ ssh-keygen -t rsa -C "userEmail" -f ~/.ssh/github

1、在配置公私密钥的过程中,会要求输入 passphrase 口令(可以不输入,直接回车),如果输入的话,一定要记住口令。

使用多个公私密钥的用户,需要在 SSH 用户配置 ~/.ssh/config 中指定服务所用的公私密钥名称,如果没有 config 文件,那么就自己手动创建一下( vim ~/.ssh/config 即可),并输入以下内容:

1
2
Host github.com www.github.com
IdentityFile ~/.ssh/github

or

1
2
Host coding.net git.coding.net
IdentityFile ~/.ssh/coding

多账号需要在 config 文件中配置以下内容

1
2
3
4
5
6
7
8
9
Host divtao0
HostName github.com
User git
IdentityFile ~/.ssh/github0

Host divtao1
HostName github.com
User git
IdentityFile ~/.ssh/github1

一个账号添加远程地址时,地址为 git@(Host):(github用户名)/github.git, 测试连通性 ssh -T git@divtao1

2、输入以下命令,获取公钥,并在相关网站添加公钥。

1
$ cat id_rsa.pub


1
pbcopy < ~/.ssh/id_rsa.pub #将其复制剪切板中

3、测试与服务器的连通性

1
$ ssh -T [email protected]

验证成功后,返回信息为:

1
Hi userName! You've successfully authenticated, but GitHub does not provide shell access.

4、如果测试连通性失败,请输入以下命令,进行错误的检查

1
ssh -vT [email protected]

简单使用


1、配置说明

1
2
3
4
5
Host alias #自定义别名
HostName ip/domain #SSH服务器的IP或者domain
Port port #SSH服务器端口,默认为22,可以不写此行
User userName #SSH服务器用户名
IdentityFile ~/.ssh/id_rsa #服务器上或者本地公钥对应的私钥的路径

2、测试连通性

1
ssh -v alias

3、以 ssh + 别名 方式进行登录

1
ssh alias

案例一


借助 Hexo 生成静态网页,并使用 GitHub Pages 进行托管,发布时无需输入密码或用户名。

首先需要在 ./.ssh/config 文件中添加如下配置:

1
2
3
4
Host devhitao
HostName github.com
User git
IdentityFile ~/.ssh/devhitao_rsa

然后在 _config.yml 文件中,配置 deploy ,这里只要更改 repo 即可。

1
2
3
type: git
repo: devhitao:userName/userName.github.io.git
branch: master

注:GitHub 中的 SSH URL 一般格式为
[email protected]:<username>/<project_name>.git , 假如不配置 ssh 的话,repo 配置应为 [email protected]:username/username.github.io.git;那么使用 ssh 只需将 [email protected] 替换为 devhitao 即可。

使用代理


ssh 登录主机使用 Socks5 代理方法

1
ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1086 %h %p" -p 28930 [email protected]

FQA


1、提示 WARNING: UNPROTECTED PRIVATE KEY FILE! or It is required that your private key files are NOT accessible by others.,说明文件是没有受到保护,应该是私有的,所以需要修改文件的权限,不能其他人读取该文件。

1
$ chmod 400 id_rsa // r(4) w(2) x(1), user group others

参考资料


文章目录
  1. 1. 引言
  2. 2. SSH 配置
  3. 3. 简单使用
    1. 3.1. 案例一
    2. 3.2. 使用代理
  4. 4. FQA