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_rsa和id_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
是端口号。