ssh命令-manpage

2023-05-16

SSH

Section: User Commands (1)
Index Return to Main Contents

BSD mandoc
 

NAME

ssh - OpenSSH SSH 客户端 (远程登录程序)  

总览 (SYNOPSIS)

ssh [- l login_name ] hostname | user@hostname [ command ]

ssh -words [-afgknqstvxACNTX1246 ] [-b bind_address ] [-c cipher_spec ] [-e escape_char ] [-i identity_file ] [-l login_name ] [-m mac_spec ] [-o option ] [-p port ] [-F configfile ] [-L port host hostport ] -words [-R port host hostport ] [-D port ] hostname | user@hostname [command ]  

描述 (DESCRIPTION)

(SSH 客户端) 用于登录远程主机, 并且在远程主机上执行命令. 它的目的是替换 rlogin 和 rsh, 同时在不安全的网络之上, 两个互不信任的主机之间, 提供加密的, 安全的通信连接. X11 连接和任意 TCP/IP 端口均可以通过此安全通道转发(forward).

当用户通过 连接并登录主机 hostname 后, 根据所用的协议版本, 用户必须通过下述方法之一向远程主机证明他/她的身份:

 

SSH 协议第一版

第一, 如果发出登录命令的本地主机已经列在远程主机的 /etc/hosts.equiv 或 /etc/ssh/shosts.equiv 文件中, 并且两端的用户名相同, 则立即允许该用户登录. 第二, 如果远程主机的用户根目录 (home 目录) 下存在 .rhosts 或 .shosts 并且其中有一行包含了客户机的名字和客户机上的用户名, 则允许该用户登录. 一般来说, 服务器不允许单独使用这种认证方式, 因为它不安全.

第二种认证方法是 rhosts 或 hosts.equiv 文件结合基于 RSA 的主机认证. 这意味着如果 $HOME/.rhosts $HOME/.shosts /etc/hosts.equiv 或 /etc/ssh/shosts.equiv 允许登录, 并且如果服务器能够验证客户的主机密钥(host key) (参见 Sx 文件(FILE) 节的 /etc/ssh/ssh_known_hosts 和 $HOME/.ssh/known_hosts ), 主机才允许客户登录. 这个认证方法关闭了因 IP 欺骗, DNS 欺骗和路由欺骗造成的安全漏洞. [系统管理员注意: 一般说来 /etc/hosts.equiv $HOME/.rhosts 和 rlogin/rsh 协议的本质是不可靠地, 要安全就应该关掉它们.]

作为第三种认证方式, 支持基于 RSA 的认证. 这种方案依托于公开密钥算法: 密码系统的加密和解密通过不同的密钥完成, 无法通过加密密钥推导出解密密钥. RSA 就是这种密码系统. 每个用户创建一对公开/私密钥匙用于认证. 服务器知道用户的公钥, 只有用户知道他自己的私钥. $HOME/.ssh/authorized_keys 文件列出允许登录的(用户的)公钥. 当用户开始登录, 程序告诉服务器它准备使用哪对钥匙(公钥)做认证. 服务器检查这只密钥(公钥)是否获得许可, 如果许可, 服务器向用户 (实际上是用户面前运行的 程序) 发出测试, 用用户的公钥加密一个随机数. 这个随机数只能用正确的私钥解密. 随后用户的客户程序用私钥解出测试数字, 即可证明他/她掌握私钥, 而又无需(把私钥)暴露给服务器.

能够自动执行 RSA 认证协议. 用户通过运行 ssh-keygen1 创建他/她的 RSA 密钥对. 私钥存放在用户根目录下的 $HOME/.ssh/identity 中, 而公钥存放在 $HOME/.ssh/identity.pub 中. 随后, 用户应该把 identity.pub 复制到远程服务器中, 作为 $HOME/.ssh/authorized_keys 存放到他/她的用户根目录下 ( authorized_keys 对应传统的 $HOME/.rhosts 文件, 每一行只有一只密钥, 尽管一行可以很长). 用户无须密码就可以直接登录. RSA 认证远比 rhosts 认证安全.

RAS 认证最便捷的用法大概就是使用认证代理(authentication agent) 了. 详见 ssh-agent1 手册页.

如果这些认证方式都失败了, 就提示用户输入口令(password), 然后把口令送到服务器做验证. 由于整个通信过程是加密的, 因此别人不可能通过侦听网络获得这个口令.

 

SSH 协议第二版

当用户以协议第二版连接时, 类似的认证方法一样有效. 如果使用了 PreferredAuthentications 的默认内容, 客户端首先试着用基于主机的认证方法进行连接; 如果这个方法失败了就用公开密钥方法作认证; 最后, 如果它也失败了, 就进入键盘操作, 试试用户口令认证.

这个公开密钥方法类似于上一节描述的 RAS 认证, 并且允许使用 RAS 或 DSA 算法: 客户端用他的私钥 ( $HOME/.ssh/id_dsa 或 $HOME/.ssh/id_rsa ) 对会话标识符(session identifier)签名, 然后把结果送到服务器. 服务器检查 $HOME/.ssh/authorized_keys 中是否有匹配的公钥, 如果密钥和签名都正确, 访问就可以继续进行. 会话标识符来自共享的 Diffie-Hellman 值, 只有客户端和服务器端才知道这个值.

如果公钥认证失败或无效, 用户口令将会加密后送到远端主机来证明用户的身份.

另外, 支持基于主机或测试应答的认证方式.

协议第二版提供附加机制增强保密性 (数据流用 3DES, Blowfish, CAST128 或 Arcfour 加密) 和完整性 (hmac-md5, hmac-sha1). 注意, 协议第一版缺少强有力的机制确保连接的完整性.

 

登录会话和远程执行

服务器接受用户身份后, 服务器即可以执行给定的命令, 也可以让用户登录并给他一个正常的 shell. 所有和远端命令或 shell 的通信被自动加密.

如果分配了伪终端(pseudo-terminal)(普通的登录会话), 用户可以使用后面将提到的 escape 字符.

如果没有分配伪终端, 则会话是透明的(transparent), 能够可靠的传送二进制数据. 大多数系统上, 即使分配了终端, 把 escape 字符设为 ``none'' 也可以让会话透明.

当远程主机上的命令或 shell 退出时, 会话即结束, 并关闭所有 X11 和 TCP/IP 连接. 远端程序的返回码做为 的返回码返回.

 

Escape 字符

如果启用了伪终端, 能够通过 escape 字符支持一组功能.

单独的波浪符可以用 ~~ 送出去, 只要后面不跟下面列举的字符, 也可以把它直接送出去. escape 字符必须接在换行(newline)后面, 这样才具有特别含义. 在配置文件中可以用 EscapeChar 命令更改 escape 字符, 在命令行上可以用 -e 选项更改.

已支持的 escape 命令 (假设是默认的 `~' ) 有:

 

~.
断开连接
~^Z
把 ssh 送到后台
~#
列出转发的连接 (forwarded connection)
~&
当等待转发的连接/X11会话结束时, ssh 在后台退出登录
~?
显示 escape 字符的列表
~C
打开命令行 (仅用于 - L 和 - R 选项增加端口转发)
~R
请求连接的重建(rekeying) (仅用于SSH协议第二版, 且对方支持)

 

 

X11 和 TCP 转发 (forwarding)

如果 ForwardX11 变量设为 ``yes'' (或参见后面对 -X 和 -x 选项的描述), 并且用户正在使用 X11 (设置了 DISPLAY 环境变量), 和 X11 显示器的连接将自动以这种形式转发到远端: 任何用 shell 或命令启动的 X11 程序将穿过加密的通道, 从本地机器连接真正的 X 服务器. 用户不应该手动设置 DISPLAY 可以在命令行上, 也可以在配置文件中设置 X11 连接的转发.

设置的 DISPLAY 值将指向服务器, 但是显示器号大于零. 这很自然, 因为 在服务器上创建了一个 ``proxy'' X 服务器, 把连接通过加密通道转发出去.

将自动在服务器上设置 Xauthority 数据. 目的是这样的: SSH 生成一个随机的授权 cookie, 存放在服务器的 Xauthority 中. SSH 检查并确保转发的连接携带了这个 cookie, 打开连接后, 把它替换为真正的 cookie. 真正的认证 cookie 绝不会送往服务器 (也不会有任何明文传送的 cookie).

如果 ForwardAgent 变量设为 ``yes'' (或参见后面对 -A 和 -a 选项的描述), 并且用户正在使用认证代理(authentication agent), 则和代理的连接将自动转发到远程主机.

既可以在命令行上, 也可以在配置文件中指定通过加密通道转发的任何 TCP/IP 连接. TCP/IP 转向的应用有, 比如说, 和电子钱包的安全连接, 或者是穿过防火墙等.

 

服务器认证

自动维护并检查一个身份数据库, 它包含所有(成功)来访的主机的身份数据. 主机密钥存放在用户根目录下的 $HOME/.ssh/known_hosts 文件中. 另外, SSH 自动检查 /etc/ssh/ssh_known_hosts 里面已知的主机. 任何新主机将被自动添加到用户文件中. 如果某个主机的身份发生改变, 就会发出警告, 并且关闭对它的密码认证, 以防止特洛伊木马窃取用户密码. 这个机制的另一个目的是防止中间人攻击, 否则这种攻击可能会绕过加密系统. StrictHostKeyChecking 选项用来防止登录到主机密钥不能识别或发生改变的那些机器.

命令行选项有:

 

-a
禁止转发认证代理的连接.
-A
允许转发认证代理的连接. 可以在配置文件中对每个主机单独设定这个参数.

代理转发须谨慎. 某些用户能够在远程主机上绕过文件访问权限 (由于代理的 UNIX 域 socket), 他们可以通过转发的连接访问本地代理. 攻击者不可能从代理获得密钥内容, 但是他们能够操作这些密钥, 利用加载到代理上的身份信息通过认证.

-b bind_address
在拥有多个接口或地址别名的机器上, 指定收发接口.
-c blowfish|3des|des
选择加密会话的密码术. 3des 是默认算法. 3des (triple-des) 用三支不同的密钥做加密-解密-加密三次运算, 被认为比较可靠. blowfish 是一种快速的分组加密术(block cipher), 非常安全, 而且速度比 3des 快的多. des 仅支持 客户端, 目的是能够和老式的不支持 3des 的协议第一版互操作. 由于其密码算法上的弱点, 强烈建议避免使用.
-c cipher_spec
另外, 对于协议第二版, 这里可以指定一组用逗号隔开, 按优先顺序排列的密码术. 详见 Ciphers
-e ch|^ch|none
设置 pty 会话的 escape 字符 (默认字符: `~' ) . escape 字符只在行首有效, escape 字符后面跟一个点 (`.' ) 表示结束连接, 跟一个 control-Z 表示挂起连接(suspend), 跟 escape 字符自己表示输出这个字符. 把这个字符设为 ``none'' 则禁止 escape 功能, 使会话完全透明.
-f
要求 在执行命令前退至后台. 它用于当 准备询问口令或密语, 但是用户希望它在后台进行. 该选项隐含了 - n 选项. 在远端机器上启动 X11 程序的推荐手法就是类似于 ssh -f host xterm 的命令.
-g
允许远端主机连接本地转发的端口.
-i identity_file
指定一个 RSA 或 DSA 认证所需的身份(私钥)文件. 默认文件是协议第一版的 $HOME/.ssh/identity 以及协议第二版的 $HOME/.ssh/id_rsa 和 $HOME/.ssh/id_dsa 文件. 也可以在配置文件中对每个主机单独指定身份文件. 可以同时使用多个 - i 选项 (也可以在配置文件中指定多个身份文件).
-I smartcard_device
指定智能卡(smartcard)设备. 参数是设备文件, 能够用它和智能卡通信, 智能卡里面存储了用户的 RSA 私钥.
-k
禁止转发 Kerberos 门票和 AFS 令牌. 可以在配置文件中对每个主机单独设定这个参数.
-l login_name
指定登录远程主机的用户. 可以在配置文件中对每个主机单独设定这个参数.
-m mac_spec
另外, 对于协议第二版, 这里可以指定一组用逗号隔开, 按优先顺序排列的 MAC(消息验证码)算法 (message authentication code). 详情以 MACs 为关键字查询.
-n
把 stdin 重定向到 /dev/null (实际上防止从 stdin 读取数据). 在后台运行时一定会用到这个选项. 它的常用技巧是远程运行 X11 程序. 例如, ssh -n shadows.cs.hut.fi emacs 将会在 shadows.cs.hut.fi 上启动 emacs, 同时自动在加密通道中转发 X11 连接. 在后台运行. (但是如果 要求口令或密语, 这种方式就无法工作; 参见 - f 选项.)
-N
不执行远程命令. 用于转发端口. (仅限协议第二版)
-o option
可以在这里给出某些选项, 格式和配置文件中的格式一样. 它用来设置那些没有命令行开关的选项.
-p port
指定远程主机的端口. 可以在配置文件中对每个主机单独设定这个参数.
-q
安静模式. 消除所有的警告和诊断信息.
-s
请求远程系统激活一个子系统. 子系统是 SSH2 协议的一个特性, 能够协助其他应用程序(如 sftp)把SSH用做安全通路. 子系统通过远程命令指定.
-t
强制分配伪终端. 可以在远程机器上执行任何全屏幕(screen-based)程序, 所以非常有用, 例如菜单服务. 并联的 - t 选项强制分配终端, 即使 没有本地终端.
-T
禁止分配伪终端.
-v
冗详模式. 使 打印关于运行情况的调试信息. 在调试连接, 认证和配置问题时非常有用. 并联的 - v 选项能够增加冗详程度. 最多为三个.
-x
禁止 X11 转发.
-X
允许 X11 转发. 可以在配置文件中对每个主机单独设定这个参数.

应该谨慎使用 X11 转发. 如果用户在远程主机上能够绕过文件访问权限 (根据用户的X授权数据库), 他就可以通过转发的连接访问本地 X11 显示器. 攻击者可以据此采取行动, 如监视键盘输入等.

-C
要求进行数据压缩 (包括 stdin, stdout, stderr 以及转发 X11 和 TCP/IP 连接的数据). 压缩算法和 gzip(1) 的一样, 协议第一版中, 压缩级别 ``level'' 用 CompressionLevel 选项控制. 压缩技术在 modem 线路或其他慢速连接上很有用, 但是在高速网络上反而可能降低速度. 可以在配置文件中对每个主机单独设定这个参数. 另见 Compression 选项.
-F configfile
指定一个用户级配置文件. 如果在命令行上指定了配置文件, 系统级配置文件 (/etc/ssh/ssh_config ) 将被忽略. 默认的用户级配置文件是 $HOME/.ssh/config
-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 hosthostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 hosthostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
-D port
指定一个本地机器 ``动态的'' 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.
-1
强制 只使用协议第一版.
-2
强制 只使用协议第二版.
-4
强制 只使用 IPv4 地址.
-6
强制 只使用 IPv6 地址.

 

配置文件 (CONFIGURATION FILES)

可以从用户级配置文件和系统级配置文件中获取更多的配置数据. 配置文件的格式及其内容参见 ssh_config5.  

“环境变量 (ENVIRONMENT)

一般将设置下面的环境变量:

 

DISPLAY
环境变量 DISPLAY 指出 X11 服务器的位置. 自动设置这个变量, 变量指向 ``hostname:n'' 格式的数据, 其中 hostname 指出运行 shell 的主机, 而 n 是大于等于 1 的整数. 根据这个数据, 用安全通路转发 X11 连接. 用户一般不需要主动设置 DISPLAY 变量, 否则会导致 X11 连接不安全 (而且会导致用户手工复制所需的授权 cookie).
HOME
设置为用户根目录的路径.
LOGNAME
等于 USER 用来兼容使用这个变量的系统.
MAIL
设置为用户邮箱的路径.
PATH
设置为默认的 PATH 如同编译 ssh 时要求的一样.
SSH_ASKPASS
如果 需要一个密语(passphrase), 只要它是终端上启动的, 它会从当前终端上读取. 如果 没有联接终端, 但是设置了 DISPLAYSSH_ASKPASS 变量, 就运行 SSH_ASKPASS 指定的程序, 打开一个 X11 窗口读取密语. 当从 .Xsession 或类似的 script 中调用 时, 这个功能特别有用. (注意, 某些机器上可能需要将输入重定向为 /dev/null 才能工作.)
SSH_AUTH_SOCK
标识某个 UNIX 域 socket 的路径, 用于和代理通信.
SSH_CONNECTION
标识连接的客户端和服务器端. 变量包含四个用空格隔开的字段: 客户端IP地址, 客户端端口号, 服务器IP地址, 服务器端口号.
SSH_ORIGINAL_COMMAND
如果强制执行了某条命令, 该变量就保存了最初的命令行. 可以用它获取初始参数.
SSH_TTY
设置为关联当前 shell 或命令的终端名字(设备的路径). 如果会话没有终端, 就不设置这个变量.
TZ
如果启动后台进程(daemon)时设置了时区, 就设置这个时区变量, 指出现在的时区 (就是说, 后台进程会把这个变量传给新建连接).
USER
设置为登录的用户名.

 

另外, 如果允许用户改变他们的环境数据, 而且有 $HOME/.ssh/environment 这个文件, 将读取其中数据, 把 ``VARNAME=value'' 这种格式的数据行添加进环境数据区. 另见 sshd_config5 的 PermitUserEnvironment 选项.  

文件 (FILES)

 

$HOME/.ssh/known_hosts
主机密钥的记录, 记录有用户登录上来, 但是没有列在 /etc/ssh/ssh_known_hosts 中的主机. 参见 sshd(8).
$HOME/.ssh/identity, $HOME/.ssh/id_dsa, $HOME/.ssh/id_rsa
包含了用户的身份信息. 它们分别是协议第一版的 RSA, 协议第二版的 DSA, 协议第二版的 RSA. 这些文件存有敏感信息, 只应由该用户读取, 不允许其他用户访问(读/写/执行). 注意, 如果一个私钥文件能够让其他用户访问, 将忽略这个文件. 在生成密钥的时候可以指定一个密语(passphrase), 用这个密语和 3DES 加密文件的敏感部分.
$HOME/.ssh/identity.pub, $HOME/.ssh/id_dsa.pub, $HOME/.ssh/id_rsa.pub
包含认证用的公钥 (以文本格式保存的身份文件的公开部分). 如果用户希望用协议第一版的 RSA 认证登录这些机器, $HOME/.ssh/identity.pub 的内容应该添加到所有机器的 $HOME/.ssh/authorized_keys 中. 如果用户希望用协议第二版的 DSA/RSA 认证登录这些机器, $HOME/.ssh/id_dsa.pub 和 $HOME/.ssh/id_rsa.pub 的内容应该添加到所有机器的 $HOME/.ssh/authorized_keys 中. 这些文件没有敏感数据, 可以(但不是必须)让任何人读取. ssh 绝不会自动访问这些文件, 它们也不是不可或缺; 只是为了用户方便才提供这些文件.
$HOME/.ssh/config
用户级配置文件. ssh_config5 描述了文件格式及其配置选项.
$HOME/.ssh/authorized_keys
存放 RSA/DSA 公钥, 用户通过它登录机器. sshd(8) 手册页描述了这个文件的格式. 最简单的文件格式和 .pub 身份文件一样. 文件内容并非高度敏感, 但是仍然建议仅让此文件的用户读写, 而拒绝其他用户的访问.
/etc/ssh/ssh_known_hosts
已知的主机密钥的系统级列表. 系统管理员应该准备好这个文件, 把所需主机的公钥保存在文件里面. 这个文件应该能够全局读取. 文件中一行一支公钥, 格式是 (字段用空格隔开): 系统名字, 公钥, 可选的注释域. 如果同一个机器使用了多个名字, 所有名字都应该(用逗号隔开)列出来. 文件格式在 sshd(8) 手册页中有描述.

登录的时候, sshd(8) 用规范的系统名字(名字服务器返回的)确认客户机; 其他名字也需要, 因为校验密钥前 不会把用户提供的名字转换为规范名字, 防止能够操作名字服务器的人欺骗主机认证.

/etc/ssh/ssh_config
系统级配置文件. ssh_config5 描述了文件格式和配置选项.
/etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_rsa_key
这三个文件包含了主机密钥的私有部分, 它们用于 RhostsRSAAuthenticationHostbasedAuthentication 如果使用了协议第一版的 RhostsRSAAuthentication 方法, 必须是 setuid root, 因为只有 root 才能读取主机密钥. 而对于协议第二版的 HostbasedAuthentication 方法, 使用 ssh-keysign8 访问主机密钥. 这样消除了验证身份时对 setuid root 的要求. 默认情况下 不是 setuid root.
$HOME/.rhosts
该文件用于 .rhosts 认证, 里面列出允许登录的主机/用户对. (注意 rlogin 和 rsh 也使用这个文件, 导致这个文件的应用变得不安全) 文件中的每一行包括一个主机名字(用名字服务器返回的规范名字), 和主机上的用户名字, 用空格隔开. 某些机器上, 如果用户根目录位于 NFS 分区, 这个文件可能需要全局可读, 因为 sshd(8) 以 root 身份读它. 此外, 该文件必须属于这个用户, 其他人不允许持有写权限. 对大多数机器推荐的访问权限是, 它的用户可以读写, 而不让其他人访问.

注意, 默认情况下会安装 sshd(8) , 因此在允许 .rhosts 认证前, sshd(8) 要求成功进行了 RSA 主机验证. 如果没有 /etc/ssh/ssh_known_hosts 文件存放客户的主机密钥, 密钥可以存放在 $HOME/.ssh/known_hosts 中. 最简单的做法是用 ssh 从服务器回连客户机; 这样会自动把主机密钥添加到 $HOME/.ssh/known_hosts

$HOME/.shosts
这个文件的用法和 .rhosts 完全一样. 它的目的是允许 做 rhosts 认证的同时防止 rlogin 或 rsh(1) 登录.
/etc/hosts.equiv
.rhosts 认证 使用这个文件. 它包含规范的主机名字, 一行一个( sshd(8) 手册页描述了完整的格式). 如果文件中发现了客户机的名字, 而且客户机和服务器的用户名相同, 则自动允许登录. 另外, 一般情况下要求 RSA 主机认证成功. 这个文件只应该让 root 可写.
/etc/ssh/shosts.equiv
这个文件的用法和 /etc/hosts.equiv 完全一样. 用于允许 登录, 但不允许 rsh/rlogin 的时候.
/etc/ssh/sshrc
当用户登录后, 运行 shell (或命令)前, 执行这个文件中的命令. 详见 sshd(8) 手册页.
$HOME/.ssh/rc
当用户登录后, 运行 shell (或命令)前, 执行这个文件中的命令. 详见 sshd(8) 手册页.
$HOME/.ssh/environment
含有关于环境变量的附加定义, 另见前面的 Sx ENVIRONMENT 节.

 

诊断 (DIAGNOSTICS)

结束时的状态码就是远端命令结束时的返回码, 如果发生了错误就返回255.  

作者 (AUTHORS)

OpenSSH 源自最初 Tatu Ylonen 发表的自由 ssh 1.2.12. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt 和 Dug Song 消除了许多 BUGS, 增加新的特征, 从而创建了 OpenSSH. Markus Friedl 贡献了对 SSH 协议1.5版和2.0版的支持.  

另见 (SEE ALSO)

rsh(1), scp(1), sftp(1), ssh-add1, ssh-agent1, ssh-keygen1, telnet(1), ssh_config5, ssh-keysign8, sshd(8)
T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen "SSH Protocol Architecture" draft-ietf-secsh-architecture-12.txt January 2002 work in progress material
 

[中文版维护人]

徐明 <xuming@users.sourceforge.net>  

[中文版最新更新]

2004/06/11 第一版  

《中国Linux论坛man手册页翻译计划》

http://cmpp.linuxforum.net

 


 

Index

NAME
总览 (SYNOPSIS)
描述 (DESCRIPTION)
SSH 协议第一版
SSH 协议第二版
登录会话和远程执行
Escape 字符
X11 和 TCP 转发 (forwarding)
服务器认证
配置文件 (CONFIGURATION FILES)
“环境变量 (ENVIRONMENT)
文件 (FILES)
诊断 (DIAGNOSTICS)
作者 (AUTHORS)
另见 (SEE ALSO)
[中文版维护人]
[中文版最新更新]
《中国Linux论坛man手册页翻译计划》

This document was created by man2html, using the manual pages.
Time: 08:54:56 GMT, June 14, 2004  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ssh命令-manpage 的相关文章

  • python使用ssh时找不到模块

    我在服务器上使用 python 当我运行需要 numpy 模块的 python 命令时 如果我这样做 ssh
  • 如何根据本地子网自动切换ssh配置?

    当我在某个网络 子网为 10 10 11 x 上时 我需要跳过中间主机才能到达目的地 因为我无法更改目的地端口 并且可以退出受限网络的端口有限 我成功地使用了如下所示的 ssh 配置 Host web direct web HostName
  • 直接通过 SSH 进入 docker 容器

    我有一些 docker 容器 现在我想通过 ssh 访问其中一个 这是工作我通过 ssh 连接到 docker 容器 但现在我遇到的问题是我不知道哪个用户可以访问这个容器 我已经对主机上的两个用户 网络和根 进行了尝试 但它们不起作用 知道
  • 克隆有效,远程推送无效。通过 copssh 的远程存储库

    我按照 Tim Davis 的方法 setup a msysgit server with copssh on windows guide http www timdavis com au git setting up a msysgit
  • 如何使用 bash/expect 检查 SSH 登录是否有效

    我的团队管理着许多服务器 公司政策规定这些服务器上的密码必须每隔几周更改一次 有时 我们的官方密码数据库会因某种原因而过时 人们通常会忘记更新它 但有时我们要到几个月后才能识别这一点 因为我们并不总是使用每台服务器 我想编写一个脚本 从数据
  • Paramiko 和伪 tty 分配

    我正在尝试使用 Paramiko 连接到远程主机并执行许多文本文件替换 i o e client exec command perl p i e s initial replaced g conf 其中一些命令需要作为 sudo 运行 这会
  • 在 bash 中使用 ssh 内的 Expect 执行 sudo

    我想创建一个脚本来自动在多个 Linux 主机上进行安装 我使用 ssh 密钥登录到主机 在登录中我想做一个 sudo 我正在尝试使用 Expect 我在站上有它 但是我的服务器上没有运行脚本 我该怎么做 这是我的尝试 但没有运气 bin
  • 登录失败时生成 Python PXSSH GUI

    当登录失败时 我无法阻止 GUI 的生成 失败并生成 GUI 的简单示例 gt gt gt import pxssh gt gt gt gt gt gt ssh pxssh pxssh gt gt gt ssh force password
  • Windows 7 上的 VirtualBox 端口转发不起作用

    Windows 7 上的 VirtualBox 端口转发不起作用 我尝试通过端口转发从我的 Windows 7 主机 ssh 到我的 VirtualBox 但 VirtualBox 不会打开端口进行侦听 我可以通过打开 VirtualBox
  • 从 Bash 调用的 Expect 脚本的退出状态代码

    我制作了一个 Bash 脚本 它使用 Expect 脚本来自动进行 ssh 登录 该脚本连接到多个服务器并运行一些命令 bash 脚本会提示输入一次登录凭据 我想合并一个功能 其中如果第一个服务器登录失败 脚本将终止 以避免脚本检查下一个服
  • ssh:无法确定主机“主机名”的真实性

    当我 ssh 到一台机器时 有时我会收到此错误警告 并提示说 是 或 否 当从自动 ssh 到其他机器的脚本运行时 这会导致一些问题 警告信息 The authenticity of host
  • gitosis 要求输入密码

    我已经按照以下说明设置了 gitosis 服务器here http scie nti st 2007 11 14 hosting git repositories the easy and secure way 它对于初始用户来说效果很好
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 与 ssh2_connect() 断开连接

    我已经使用 ssh2 连接ssh2 connect到服务器 但我没有看到任何方法在联机帮助页中 http php net ssh2 connect我应该如何结束连接 我不太喜欢在断开连接之前等待脚本结束 我可以用吗fclose 这听起来不对
  • 原始 ssh 连接(低级)

    作为一个小型 大型 业余爱好项目 我开始用 C 制作一个 非常原始的 ssh 2 0 客户端 这是为了探索和更好地理解 DH 并帮助加深我对加密的熟悉程度 根据 RFC 4253 我已经开始这样的初始连接 省略不相关的变量预设等 Rando
  • 无法验证主机真实性

    我第一次做git pull 在git中提示无法确定主机的真实性 与我生成的私钥相比 RSA密钥指纹不正确 我只是想知道如何更新它以便它读取正确的文件以及为什么它首先读取错误的指纹 我遇到了类似的问题 这意味着远程主机未知 不受信任 修复方法
  • 使用 Jenkins Git 插件中的 SSH 密钥在构建期间运行 Git 命令

    我们在 Jenkins 上的构建作业作为发布构建的一部分运行一些 git 命令 例如 git push 和 git pull 因此需要一种在构建期间从 shell 运行经过身份验证的 git 命令的方法 我们的詹金斯奴隶不持有任何凭证 因为
  • 如何使用java与防火墙(路由器)建立ssh连接?

    由于某种原因 我需要连接到防火墙 基于Linux 并使用Java添加一些规则 用google搜索了一段时间后 我发现jsch是我最好的选择 但是当我 用它来执行命令 显示主机名 例如 返回错误 如果我 执行类似命令 ls l and who
  • gitlab runner ssh私钥644文件权限错误

    运行 gitlab ci cd 管道时 ssh 给出 0644 badpermission 错误 变量作为文件类型存储在 gitlab 的 settings gt variable 部分中 gitlab ci yml 文件如下所示 stag
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s

随机推荐

  • windows11编译OpenCV4.5.0 with CUDA(附注意事项)

    windows11编译OpenCV4 5 0 with CUDA 从OpenCV4 2 0 版本开始允许使用 Nvidia GPU 来加速推理 本文介绍最近使用windows11系统编译带CUDA的OpenCV4 5 0的过程 文中使用 特
  • OpenCV—矩阵数据类型转换cv::convertTo

    OpenCV 矩阵数据类型转换cv convertTo 函数 void convertTo OutputArray m int rtype double alpha 61 1 double beta 61 0 const 参数 m 目标矩阵
  • Mysql LIMIT使用

    原文出处 xff1a http www jb51 net article 62851 htm Mysql中limit的用法 xff1a 在我们使用查询语句的时候 xff0c 经常要返回前几条或者中间某几行数据 xff0c 这个时候怎么办呢
  • cookies的理解与chrome查看cookie

    Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存 xff0c 或是从客户端的硬盘读取数据的一种技术 Cookies是当你浏览某网站时 xff0c 由Web服务器置于你硬盘上的一个非常小的文本文件 xff0c 它可以记录
  • 【Qt】Qt多线程开发—实现多线程设计的四种方法

    Qt 使用Qt实现多线程设计的四种方法 文章目录 Qt 使用Qt实现多线程设计的四种方法一 写在前面二 方法一 QThread xff1a 带有可选事件循环的底层API三 方法二 QThreadPool和QRunnable xff1a 重用
  • OpenStack Designate系统架构分析

    前言 OpenStack提供了云计算数据中心所必不可少的用户认证和授权 计算 存储 网络等功能 xff0c 网上已经有不少的文章介绍这些功能的配置 架构分析以及代码详解 但是 针对OpenStack Designate所提供的DNSaaS服
  • 【Qt】Qt线程同步之QWaitCondition

    Qt 线程同步之QWaitCondition 文章目录 Qt 线程同步之QWaitCondition一 简介二 成员函数API xff08 2 1 xff09 等待 wait xff08 2 2 xff09 唤醒一个线程 xff08 2 3
  • Linux下如何用命令连接有线网络

    因为进入tty命令界面 xff0c 想要下东西 xff0c 需要用命令连接有线网络直接输入命令 sudo dhclient eth0
  • Debian下制作deb包

    1 安装相应的编译工具 apt get install dh make dpkg dev debhelper fakeroot build essential Docker中执行dh make出现如下错误 xff1a Cannot get
  • electron在龙芯平台上本地安装使用和打包(二)

    已经打包好的适合在mips平台运行的electron quick start xff0c 点击下载 1 安装electron前的准备 从http www loongnix org index php Electron下载所需软件包 xff0
  • mips版本electron在龙芯平台上的安装

    本文主要讲述如何安装mips版本的electron xff0c 和上两篇不同的是 xff0c 此安装方法只需要用户修改一行代码即可完成 mips架构用户只需要关注本文章的3 2章节 目前用户可以通过此方法安装mips版本的4 1 3 xff
  • 制作PyPI包

    1 环境 本文介绍使用setup py生成pip可以安装的python包以及使用git信息自动生成软件包版本 1 1 python pip版本 python3 version Python 3 7 3 pip 18 1 from usr l
  • python3 对字典去重

    对于一个列表中的多个字典进行去重 1 对key去重 将相同的key合并到一个字典中 2 对元素去重 将一个字典的重复元素去重 代码如下 xff1a span class token comment initializing list spa
  • ffi使用

    编译程序时 xff0c 发现测试用例过不去 xff0c 抽象出其中的测试用例 span class token macro property span class token directive hash span span class t
  • KVM虚拟机内进行GPU计算

    xff08 文章来自作者维护的社区微信公众号 虚拟化云计算 xff09 xff08 目前有两个微信群 kvm虚拟化 和 openstack xff0c 扫描二维码点击 云 交流 xff0c 进群交流提问 xff09 我们知道CUDA是由NV
  • linux下安装及配置jenkins

    jenkins常用的有两种安装方式 xff1a 1 直接下载war包jenkins war xff0c 下载地址https jenkins io download 直接下载 1 1 可以把war包直接部署到servlet容器中 xff0c
  • Ubuntu 中软件的安装、卸载以及查看的方法总结

    说明 xff1a 由于图形化界面方法 xff08 如Add Remove 和Synaptic Package Manageer xff09 比较简单 xff0c 所以这里主要总结在终端通过命令行方式进行的软件包安装 卸载和删除的方法 一 U
  • win10环境下基于anaconda3安装tensorflow的方法以及踩的坑和解决办法

    安装过程 1 首先安装anaconda3 xff0c 下载地址 xff1a https www anaconda com download 2 使用下面的命令创建tensorflow环境 conda create n tensorflow
  • B 站下载教学视频

    B站中的教学视频大都有许多分集 xff0c 而且可能涉及到版权 xff0c 过不了多久可能会失效 xff0c 最好的办法就是先保存下来再说 这里介绍的you get可以下载许多视频网站的视频 xff0c 在此仅介绍B站的下法 虽然速度基本在
  • ssh命令-manpage

    SSH Section User Commands 1 Index Return to Main Contents BSD mandoc NAME ssh OpenSSH SSH 客户端 远程登录程序 总览 SYNOPSIS ssh l l