6.9.1. SSH 基础

[警告]警告

如果想要运行 OpenSSH 服务,”/etc/ssh/sshd_not_to_be_run“必须不存在。

SSH 有两个认证协议。

表 6.14. SSH 认证协议和方式列表

SSH 协议SSH 方式说明
SSH-1RSAAuthentication基于 RSA 身份秘钥的用户认证
同上RhostsAuthentication.rhosts“ 基于主机的认证(不安全,禁用)
同上RhostsRSAAuthentication.rhosts“ 使用 RSA 主机秘钥的主机认证(禁用)
同上ChallengeResponseAuthenticationRSA 质疑-应答 认证
同上PasswordAuthentication基于密码的认证
SSH-2PubkeyAuthentication基于公钥的用户认证
同上HostbasedAuthentication~/.rhosts“ or “/etc/hosts.equiv“ 使用客户端主机公钥的主机认证(禁用)
同上ChallengeResponseAuthentication质疑-应答 认证
同上PasswordAuthentication基于密码的认证
[小心]小心

如果你使用一个非 Debian 的系统,请小心注意这些不同。

细节参见 “/usr/share/doc/ssh/README.Debian.gz“, ssh(1), sshd(8), ssh-agent(1), and ssh-keygen(1).

下面是秘钥配置文件。

表 6.15. SSH 配置文件列表

配置文件配置文件描述
/etc/ssh/ssh_configSSH 客户端默认, 参见 ssh_config(5)
/etc/ssh/sshd_configSSH 服务端默认, 参见 sshd_config(5)
~/.ssh/authorized_keys该账户连接到这个服务器上的客户端使用的默认 SSH 公钥
~/.ssh/identity用户的 SSH-1 RSA 私钥
~/.ssh/id_rsa用户的 SSH-2 RSA 私钥
~/.ssh/id_dsa用户的 SSH-2 DSA 私钥
[提示]提示

参见 ssh-keygen(1), ssh-add(1) 和 ssh-agent(1) 来了解怎样使用 SSH 公钥和私钥。

[提示]提示

一定要通过连接测试来确认设置。有任何问题的连接,使用 “ssh -v“.

[提示]提示

稍后可以使用 “ssh-keygen -p“ 改变密码来加密本地 SSH 私钥.

[提示]提示

你可以在 “~/.ssh/authorized_keys“ 里给条目增加选项来限制主机和运行特定的命令。细节请参见 sshd(8).

从客户端启动一个 ssh(1) 连接.

表 6.16. SSH 客户端启动例子列表

命令说明
ssh username@hostname.domain.ext使用默认模式连接
ssh -v username@hostname.domain.ext有详细信息的默认连接模式
ssh -1 username@hostname.domain.ext强制使用 SSH 1 版本连接
ssh -1 -o RSAAuthentication=no -l username hostname.domain.extSSH 1 版本,强制使用密码
ssh -o PreferredAuthentications=password -l username hostname.domain.extSSH 2 版本,强制使用密码

如果本地和远程主机,使用同样的用户名,你可以省略输入 “username@“. 即使在本地和远程主机使用不同的用户名,你可以使用 “~/.ssh/config“ 来省略输入用户名.对于 Debian Salsa 服务器,使用账户名 “foo-guest“,你可以设置 “~/.ssh/config“ 包含下面的内容。

  1. Host salsa.debian.org people.debian.org
  2. User foo-guest

对于用户来讲, ssh(1) 功能比telnet(1) 更加智能和安全. 不像 telnet命令, ssh 命令不会在遇到 telnet 的退出字符(初始默认是 CTRL-])时停止.