SSH配置和使用

生成ssh密钥

在linux上生成

在linux上,使用ssh-keygen命令生成ssh密钥。

1
ssh-keygen -t rsa

使用xshell生成

工具 > 新建用户密钥生成向导,然后根据向导生成密钥。

部署ssh公钥和私钥

将ssh公钥追加到目标服务器的${remote_user_home}/.ssh/authorized_keys文件中,并指定相关文件权限:

文件或目录 权限
.ssh/ 700
.ssh/authorized_keys 600

更多文件权限设置参考:http://man.openbsd.org/ssh.1
原文摘要如下:
Image of Yaktocat

使用ssh登录远程服务器

从一台linux服务器登录到另一台服务器

使用ssh从一台linux服务器登录到另一台服务器时,必须将本机的ssh公钥追加到目标服务器的${remote_user_home}/.ssh/authorized_keys文件中。同时将私钥放置在${local_user_home}/.ssh/id_rsa文件中。
将公钥发送到远程服务器:

1
ssh-copy-id remote_user@remote_host

使用ssh登录远程服务器:

1
ssh remote_user@remote_host

从一台windows服务器登录到另一台服务器

使用xshell

ssh配置多个远程主机

当使用多个公钥访问不通的远程服务器时,在${local_user_home}/.ssh/config文件中添加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
Host github.com 
HostName github.com
IdentityFile D:/ssh/yyhan_github.ppk
User git
Host git.coding.net
HostName git.coding.net
IdentityFile D:/ssh/coding_net.ppk
User git
Host 192.168.1.*
HostName 192.168.1.1
IdentityFile D:/ssh/root_192_168_1_1.ppk
User root

配置项描述如下:

配置项 描述
Host 主机别名,可以使用模式匹配
HostName 主机真实名称或地址
IdentityFile 密钥文件地址
User 远程主机用户名

更多配置参考:http://man.openbsd.org/ssh_config.5

附录

SSH工具

  • openSSH(linux)
  • xShell(windows)
  • secureCRT(windows)
  • FileZilla(windows和linux)可以使用ssh的FTP客户端工具

参考文档

阮一峰:《SSH原理与运用(一):远程登录
阮一峰:《SSH原理与运用(二):远程操作与端口转发
OpenSSh官网:OpenSSH

ssh linux 多个远程主机