记录添加公钥到远程authorized_keys文件 及 Linux 删除文件夹和文件的命令

本文介绍Linux系统中如何使用rm命令删除文件夹和文件,包括递归删除和强制删除选项。同时,详细说明了如何通过SSH将本地公钥添加到远程服务器的authorized_keys文件,实现免密码登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 删除文件夹和文件的命令

-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

删除文件夹实例:
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

删除文件使用实例:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件

 

记录添加公钥到远程authorized_keys文件

authorized_keys文件一般在.ssh/authorized_keys

ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

1.”$ ssh user@host”,表示登录远程主机

2.单引号中的mkdir .ssh && cat >> .ssh/authorized_keys,表示登录后在远程shell上执行的命令

3.”$ mkdir -p .ssh”的作用是,如果用户主目录中的.ssh目录不存在,就创建一个

4.’cat >> .ssh/authorized_keys’ < ~/.ssh/id_rsa.pub的作用是,将本地的公钥文~/.ssh/id_rsa.pub,重定向追加到远程文件authorized_keys的末尾。
 

<think>我们正在处理用户的问题:如何将公钥添加到SSH的authorized_keys文件中以启用SSH访问。 根据提供的引用,我们可以总结出几种方法: 方法1:手动复制(引用[2]中的步骤) 1. 将公钥内容(通常是.pub文件的内容)追加到远程服务器的~/.ssh/authorized_keys文件中。 2. 确保~/.ssh目录的权限为700,authorized_keys文件的权限为600。 方法2:使用ssh-copy-id工具(引用[3]) 这是一种更简单的方法,只需运行: ssh-copy-id -i ~/.ssh/id_rsa.pub user@hostname 这个命令会自动将公钥复制到远程服务器的authorized_keys文件中,并设置正确的权限。 方法3:如果已经能够通过密码登录到远程服务器,也可以手动操作: 在本地查看公钥:`cat ~/.ssh/id_rsa.pub` 复制输出内容,然后登录远程服务器,将内容追加到~/.ssh/authorized_keys文件末尾(如果文件不存在则创建,并确保目录文件权限正确)。 注意:在操作之前,确保本地已经生成了SSH密钥对(引用[5])。如果没有,可以使用以下命令生成: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 步骤详细说明: 1. 生成SSH密钥对(如果还没有): ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 然后按照提示操作,通常直接按回车使用默认路径空密码。 2. 将公钥添加远程服务器的authorized_keys文件中: 使用ssh-copy-id(推荐): ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_host 或者手动复制: cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" 3. 验证登录: ssh username@remote_host 注意:如果远程服务器上.ssh目录不存在,需要先创建并设置权限(如手动复制命令中所示)。 根据引用[4],我们了解到authorized_keys文件用于存储允许访问该服务器的客户端的公钥,而known_hosts文件用于存储已知的主机公钥(用于验证服务器身份)。 因此,我们按照上述步骤回答用户。</think>要将公钥添加到SSH的`authorized_keys`文件中以实现免密登录,请按以下步骤操作: ### 方法1:使用`ssh-copy-id`(推荐) ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_host ``` - **作用**:自动将公钥追加到远程主机的`~/.ssh/authorized_keys`文件中,并自动设置正确权限[^3] - **参数说明**: - `-i`:指定公钥路径(默认为`~/.ssh/id_rsa.pub`) - `username`:远程服务器用户名 - `remote_host`:远程服务器IP或域名 - **示例**: ```bash ssh-copy-id -i ~/.ssh/work_key.pub john@192.168.1.100 ``` ### 方法2:手动复制(当`ssh-copy-id`不可用时) 1. **本地查看公钥内容**: ```bash cat ~/.ssh/id_rsa.pub ``` 复制输出的全部内容(以`ssh-rsa AAAAB3...`开头) 2. **登录远程服务器**: ```bash ssh username@remote_host ``` 3. **创建或修改授权文件**: ```bash mkdir -p ~/.ssh # 确保目录存在 chmod 700 ~/.ssh # 设置目录权限[^2] echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys # 设置文件权限[^2] ``` ### 权限要求(关键!) | 文件/目录 | 正确权限 | 错误权限的影响 | |-----------|----------|----------------| | `~/.ssh` | `700` (drwx------) | SSH拒绝读取密钥 | | `authorized_keys` | `600` (-rw-------) | 身份验证失败 | | 用户Home目录 | 不能有`group/world`写权限 | 安全机制阻止登录 | ### 验证配置 ```bash ssh -v username@remote_host ``` - 观察日志中是否出现`Authenticated to ... using publickey` - 成功时直接登录,不再提示输入密码 ### 常见问题解决 - **权限错误**:在远程服务器执行 `chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys` - **目录不存在**:手动创建 `mkdir -p ~/.ssh` - **密钥路径错误**:用`-i`指定自定义密钥路径(如`ssh -i ~/.ssh/custom_key`) > ⚠️ 注意:`authorized_keys`存储**允许访问本机**的公钥,而`known_hosts`存储**已验证过的主机**公钥,两者用途不同[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cacasi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值