在远程 Linux / UNIX 服务器中安装 / 附加 SSH 密钥 Authorized_keys
您需要使用 ssh-copy-id 脚本,该脚本使用 ssh 使用登录密码登录远程计算机。语法如下:
ssh-copy-id user@server.example.com[不要打印]
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | 没有任何 |
预计阅读时间 | 2 分钟 |
或者
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server1.example.com
或者
ssh-copy-id -i ~/.ssh/id_dsa.pub user@server1.example.com
或者使用远程主机上的特定端口,例如 TCP 端口#4242:
ssh-copy-id -i /path/key/file.pub "user@server.example.com -p 4242"
在 OS X Unix 系统上安装 ssh-copy-id
键入以下命令:
brew install ssh-copy-id
示例输出:
步骤#1:创建密钥
键入以下ssh-keygen 命令来为您的工作站/笔记本电脑生成、管理和转换身份验证密钥:
ssh-keygen
确保您使用密码保护密钥。
步骤#2:安装公钥
在名为 www-03.example.in 的远程服务器中安装密钥,输入:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@www-03.example.in
注意:如果您的系统上找不到 ssh-copy-id 命令,请尝试以下命令在远程主机上附加/安装公钥:
ssh username@www-03.example.in "umask 077; mkdir .ssh"
cat $HOME/.ssh/id_rsa.pub | ssh username@www-03.example.in "cat >> .ssh/authorized_keys"
步骤#3:使用钥匙串进行无密码登录
OpenSSH 为远程系统提供 RSA 和 DSA 身份验证,无需提供密码。keychain是一个特殊的 bash 脚本,旨在使基于密钥的身份验证变得异常方便和灵活(请参阅如何在 unix 上安装 keychain 脚本)。将以下几行添加到您的 ~/.bash_profile 或 shell 登录文件中:
/usr/bin/keychain $HOME/.ssh/id_rsa source $HOME/.keychain/$HOSTNAME-sh
保存并关闭文件。
参考:
- 20 个 OpenSSH 服务器最佳安全实践
- 如何在 Linux / Unix 系统上设置 SSH 密钥
- Linux / Unix 用户的 OpenSSH 配置文件示例
- 审计 Linux/Unix 上的 SSH 服务器和客户端配置
- 如何在 FreeBSD 上安装和升级 OpenSSH 服务器
- Ubuntu Linux 安装 OpenSSH 服务器
- 在 Alpine Linux 上安装 OpenSSH 服务器(包括 Docker)
- Debian Linux 安装 OpenSSH SSHD 服务器
- 配置 OpenSSH 以监听 IPv6 地址
- OpenSSH 服务器连接在几分钟不活动后断开
- 在 OpenSSH 身份验证之前显示横幅/消息
- 强制 OpenSSH(sshd)仅监听选定的多个 IP 地址
- OpenSSH 使用 ssh-keygen 命令更改密码
- 重复使用 SSH 连接以通过多路复用加速远程登录过程
- 重新启动 SSHD 服务器之前检查语法错误
- 更改 Linux 或 Unix 服务器上的 ssh 端口
- OpenSSH 拒绝或限制用户和组的访问
- Linux OpenSSH 服务器拒绝 root 用户访问/登录
- 在 Linux 上禁用 ssh 密码登录以提高安全性
- SSH ProxyCommand 示例:通过一台主机到达服务器
- OpenSSH 多路复用器可加速 OpenSSH 连接
- 在远程 Linux / UNIX 服务器中安装 / 附加 SSH 密钥 Authorized_keys
- 使用 ssh-copy-id 与监听不同端口的 OpenSSH 服务器配合使用