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
原文摘要如下:
使用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
12Host 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