ssh-copy-id命令
ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户下。 达到的功能: 将你的公共密钥填充到一个远程机器的authorized_keys文件中
先将密钥生成:
sudo ssh-keygen
方法一
cat ~/.ssh/id_rsa.pub | ssh user@server "cat - >> ~/.ssh/authorized_keys"
方法二
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
是指将本地家目录下的公钥上传到以用户名为user、IP为server的主机中,并写入远程主机家目录authorized_keys文件中
ssh-copy-id [-i] [本地密钥路径]] [远程用户名@远程主机IP]
ssh-copy-id [-i] [本地密钥路径]] [远程用户名@远程主机IP] [-f] -f : 为可选,意为追加至authorized_keys文件中
方法三
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 12222 user@server"
指远程主机端口号为 12222 的情况下使用的命令
提示一
.ssh文件夹默认为隐藏文件夹
提示二
如果每次输入连接ssh命令太麻烦可以按照以下方法
在用户家目录~/.ssh/目录下新建一个config文件
写入下面语句:
Host pc
HostName XXX.XXX.XXX.XXX
Port 22
User admin
保存退出就可以了
在终端输入 ssh pc 就可以连接到远程主机了
说明: pc 为你输入连接主机的代名
XXX 为你的远程主机 IP
22 为远程主机 ssh 端口
admin 为远程主机的用户名
(可向下写入多台主机登录信息,注意不要写在一行)
提示三
设置好了所有步骤后仍然需要输入远程主机的登录密码,可以看看远程主机文件权限,很多人在这个地方没有注意导至怎么都连都要密码,也试过修改/etc/ssh/sshd_config文件配置仍无法达到想要的效果,下面就整理出来ssh远程免密码登录所需要的文件权限设置
1 远程主机文件夹权限,也就是远程主机的家目录,一般在/home/下,假设为 test
那么我们就要把这个文件夹设为 700 权限,如下命令:(root用户下修改目录权限)
chmod 700 /home/test
2 设置.ssh目录权限,路径为:/home/test/.ssh 命令如下:
chmod 700 ~/.ssh 或: chmod 700 /home/test/.ssh
3 设置存放公钥文件的权限,路径为/home/test/.ssh/authorized_deys
chmod 600 ~/.ssh/authorized_deys
注意: test 为用户的家目录文件夹名,ssh免密码登录严格按照这种权限格式设置