跳过正文
Openssh

Openssh

··
目录

参考
#

客户端使用
#

配置
#

客户端可以配置为存储常用选项和主机。所有选项都可以全局声明或限制到特定主机。例如:

~/.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 身份,则可以通过在配置中 使用HostIdentityFile指令来设置不同的密钥以用于不同的主机或远程用户:

~/.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
作者
Ask Me Why