参考 #
客户端使用 #
配置 #
客户端可以配置为存储常用选项和主机。所有选项都可以全局声明或限制到特定主机。例如:
~/.ssh/config
# global options
User user
# host-specific options
Host myserver
User user
Hostname server-address
Port port
通过这样的配置,以下命令是等效的:
$ ssh -p port user@server-address
$ ssh myserver
公钥生成 #
可以通过运行以下命令来生成 SSH 密钥对:
$ ssh-keygen
管理多个密钥 #
如果您有多个 SSH 身份,则可以通过在配置中 使用Host和IdentityFile指令来设置不同的密钥以用于不同的主机或远程用户:
~/.ssh/config
Host SERVER1
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_IDENTITY1
Host SERVER2 SERVER3
IdentitiesOnly yes
IdentityFile ~/.ssh/id_ed25519_IDENTITY2
将公钥复制到远程服务器 #
如果公钥文件名不是默认的,且ssh服务器监听的端口也不是默认的22端口,使用以下命令:
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 221 username@remote-server.org
注意:复制时还是需要先保证能够ssh登陆到远程服务器,可以先允许密码登陆,之后在禁止密码登陆即可。
ghostty, kitty 等终端连接到远程 #
当连接到没有终端的 terminfo 条目的主机时, 可以参考以下配置片段:
~/.ssh/config
----------------------------
Host example.com
SetEnv TERM=xterm-256color
服务端使用 #
sshd是 OpenSSH 服务器守护程序,由/etc/ssh/sshd_config进行配置以及由sshd.service管理。在重新启动服务之前,在测试模式下使用 sshd 以确保其能够正常启动。有效的配置不会产生任何输出。
# sshd -t
启动/启用 sshd.service。它将使 SSH 守护进程永久处于活动状态,并为每个传入连接分叉。
强制公钥认证 #
/etc/ssh/sshd_config.d/20-force_publickey_auth.conf
PasswordAuthentication no
AuthenticationMethods publickey
警告:在将其添加到您的配置之前,请确保所有需要 SSH 访问的帐户都在相应文件中设置了公钥身份验证authorized_keys。
限制root登陆 #
/etc/ssh/sshd_config.d/20-deny_root.conf
PermitRootLogin no