通过命令行使用密钥登录远程SSH主机的步骤如下1. 生成SSH密钥对客户端在本地终端执行以下命令生成密钥对默认保存路径为~/.ssh/id_rsassh-keygen-ted25519-Cyour_emailexample.com# 推荐ed25519算法兼容性更好# 若服务器较旧改用RSA算法ssh-keygen -t rsa -b 4096按提示选择保存路径默认即可可设置密钥锁码可选。生成的文件id_ed25519私钥需严格保密。id_ed25519.pub公钥需上传至服务器。2. 将公钥上传至服务器方法一自动上传推荐ssh-copy-id-i~/.ssh/id_ed25519.pub usernameserver_ip输入服务器密码后公钥会自动追加到服务器的~/.ssh/authorized_keys文件中。方法二手动上传复制公钥内容cat~/.ssh/id_ed25519.pub# 查看并复制公钥登录服务器并操作sshusernameserver_ipmkdir-p~/.sshecho粘贴公钥内容~/.ssh/authorized_keyschmod700~/.ssh# 设置目录权限chmod600~/.ssh/authorized_keys# 设置文件权限3. 配置SSH客户端使用密钥在本地~/.ssh/config文件中添加以下配置可选Host myserver HostName server_ip User username Port22# 若非默认端口需修改IdentityFile ~/.ssh/id_ed25519# 私钥路径配置后直接执行ssh myserver即可登录。4. 通过命令行直接登录使用以下命令指定私钥文件ssh-i~/.ssh/id_ed25519 usernameserver_ip-pport_number-i指定私钥路径。-p若服务器SSH端口非默认22需指定端口号。5. 服务器端SSH配置可选为提升安全性建议在服务器修改/etc/ssh/sshd_configPubkeyAuthenticationyes# 启用公钥认证PasswordAuthentication no# 关闭密码登录可选PermitRootLoginyes# 允许root登录按需设置修改后重启SSH服务sudosystemctl restart sshd# Ubuntu/Debiansudoservicesshrestart# CentOS/RHEL通过SSH在TRAE里面访问远程主机参见常见问题排查权限错误确保服务器.ssh目录权限为700authorized_keys为600。密钥不匹配检查公钥是否完整复制或重新生成密钥对。SELinux拦截执行restorecon -Rv ~/.ssh修复仅CentOS。通过以上步骤即可实现基于密钥的无密码登录提升远程连接的安全性。