ssh的使用笔记

ssh使用详解

ssh

-b bind_address 在本地主机上绑定用于ssh连接的地址,当系统有多个ip时才生效。
-E log_file 将debug日志写入到log_file中,而不是默认的标准错误输出stderr。
-F configfile 指定用户配置文件,默认为~/.ssh/config。
-f 请求ssh在工作在后台模式。该选项隐含了"-n"选项,所以标准输入将变为/dev/null。
-i identity_file 指定公钥认证时要读取的私钥文件。默认为id_rsa。
-l login_name 指定登录在远程机器上的用户名。也可以在全局配置文件中设置。
-N 显式指明ssh不执行远程命令。一般用于端口转发,见后文端口转发的示例分析。
-n 将/dev/null作为标准输入stdin,可以防止从标准输入中读取内容。ssh在后台运行时默认该项。
-p port 指定目的端口,默认为22。
-q 静默模式。大多数警告信息将不输出。
-T 禁止为ssh分配伪终端。
-t 强制分配伪终端,重复使用该选项"-tt"将进一步强制。
-v 详细模式,将输出debug消息,可用于调试。"-vvv"可更详细。
-V 显示版本号并退出。
-o 指定额外选项,选项非常多。
user@host 指定登录远端主机的用户名。
host 如果本机用户名和需要登录的远端用户名一致,可省略用户名。

基本示例

以172.16.10.6主机上的longshuai用户登录172.16.10.6

1
ssh longshuai@172.16.10.6

使用ssh还可以实现主机跳转,即跳板功能。

1
ssh 172.16.10.6

ssh-keygen

-b length 指定密钥长度
-e file 读取openssh的私钥或者公钥文件
-C comment 添加注释
-f filename 指定用来保存密钥的文件名
-i file 读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥
-I file 显示公钥文件的指纹数据
-N key 提供一个新密语
-P key 提供(旧)密语
-q 静默模式
-t type 指定要创建的密钥类型

默认在~/.ssh目录下生成id_rsaid_rsa.pub文件

id_rsa 私钥文件
id_rsa.pub 公钥文件
known_hosts 类似hosts文件,用于保存访问过的计算机的公钥,OpenSSH会自动进行核对

多个SSH key的管理的情况需要指定秘钥文件名。

基本示例

默认在 ~/.ssh 目录中生成SSH RSA公钥和私钥文件。

1
ssh-keygen -t rsa

默认在 ~/.ssh目录中生成4096位SSH RSA公钥和私钥文件。

1
ssh-keygen -m PEM -t rsa -b 4096

Docker&ssh

加入一行:

1
RUN apt-get install -y openssh-server && service ssh start

同时暴露端口:

1
EXPOSE 22

随后开启 sshd 服务:

1
RUN /usr/sbin/sshd -D

如果不想使用默认端口,需要更改配置文件 /etc/ssh/sshd_config,在其中添加一行:

1
Port 22

其中 22 是端口号。