AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
打开 mac 终端 第一步:生成密钥。在终端下执行命令: ``` ssh-keygen -t rsa ``` 一路回车,各种提示按默认不要改, 生成的密钥对id_rsa,id_rsa.pub,默认存储在 ~/.ssh目录 下  密码默认为 空 ,等待执行完毕。然后执行下面命令查看 生成的 密钥对 ``` ls ~/.ssh ``` #可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥) 第二步:放置公钥到Linux服务器。使用scp命令: ``` scp ~/.ssh/id_rsa.pub 登录用户名@服务器域名:~/.ssh/ ``` 第三步:将 id_rsa.pub的内容复制到远程主机的/home/dbrg/.ssh/authorized_keys文件中 如果机器上已经有 authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容, #先登录到远程服务器 ``` cd ~/.ssh ``` ``` cat -n /home/cssor/.ssh/id_rsa.pub > authorized_keys #将公钥内容加入到authorized_keys文件,没有则新建一个就行 ``` 如果没有authorized_keys这个文件,直接cp 就好了 先登录到远程服务器然后执行下面命令 ``` cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys ``` 这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。我就曾经在配置SSH的时候郁闷了好久。 ``` chmod 644 ~/.ssh/authorized_keys ``` 第三步:配置本地ssh config文件。执行: ``` vi ~/.ssh/config ``` 加入以下内容: Host server #别名,域名缩写 HostName sever.com #完整的域名 User username #登录该域名使用的账号名 IdentityFile ~/.ssh/id_rsa #私钥文件的路径 经过以上操作以后,已经大功告成。 使用ssh server或ssh server.com就可以直接登录到远程服务器了。并且如果git服务器也是搭建在同一个Linux主机上,本地执行git pull等也不需要密码再次登录了。 以上比较要注意的是: 公钥要放在登录服务器所用的账号的家目录下,比如你用 abc登录远程服务器,就要把公钥 放到 /home/abc/.ssh/下, authorized_keys文件也是在这个目录下。我曾因为放错账号目录,导致失败。 ## 问题 新买的阿里云服务器配置完之后还是一直需要密码,且没有任何报错,权限也配置正确 第五,我们还需要通过ssh-copy-id将机器A的公钥复制到机器B的 "~/.ssh/authorized\_keys"文件中 > ssh-copy-id [root@172.17.0.4](mailto:root@172.17.0.4) # 需要输入密码(默认公钥) > ssh-copy-id -i ~/.ssh/id\_rsa\_yangan [root@172.17.0.4](mailto:root@172.17.0.4) # 复制自定义公钥 第六,将机器A使用的私钥添加到由ssh-agent 维护的列表中 > ssh-add ~/.ssh/id\_rsa 第七,执行 "ssh [root@172.17.0.4](mailto:root@172.17.0.4)" 可以发现不用输入密码,实现免密码登录。 执行以上方法的 ``` ssh-copy-id root@ip ``` 后终于正常使用密钥登录,不再需要输入密码