今天我们也来聊聊 Mac 与服务器 ssh 无密码登录的问题
这里只聊 bash 和 zsh 这两种情况
-
bash: 编辑vim ~/.bash_profile,如果没有,那么新建它;有的话就打开修改。
zsh的话,编辑vim ~/.zshrc, 道理相同,在最后面追加就可以了。 - 添加别名:
alias jianwen="ssh root@192.168.0.122"等号前后不能出现空格 - 使配置命令生效:
bash下执行source ~/.bash_profile,此条命令是使bash重新载入刚才的配置命令并生效。 如果是zsh,就用source ~/.zshrc
ssh 无密码登录
- 生成密钥:如果需要自定义文件名称可以使用
-f参数
#可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥)
#公钥是加密,私钥是解密(不要外传私钥)
$ ssh-keygen -t rsa -C "email@example.com"
ssh-copy-id 命令可以把本地主机的公钥复制到远程主机的 authorized_keys 文件上,ssh-copy-id 命令也会给远程主机的用户主目录(home)和~/.ssh, 和 ~/.ssh/authorized_keys 设置合适的权限。
ssh-copy-id [-i [identity_file]] [user@]machine
-i:指定公钥文件
例子
1、把本地的 ssh 公钥文件安装到远程主机对应的账户下:
ssh-copy-id user@server
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
- 将公钥复制到服务器
~~ ~~# 先登录到远程服务器~~ ~~# 有的话添加(有的话不要删掉,因为别人可能做过免密登录),没有则新建一个就行~~ ~~# 以上要注意的是: 公钥要放在登录服务器所用的账号的家目录下,比如你用 jianwen 登录 远程服务器,就要把公钥放到 /home/jianwen/.ssh/ 下, authorized_keys 文件也是在这个目录下。~~ ~~scp ~/.ssh/id_rsa.pub username@hostname:~/.ssh~~ ~~cd ~/.ssh~~ ~~cat -n /root/.ssh/id_rsa.pub >> authorized_keys~~ ~~
- 修改服务端 ~/.ssh 文件夹权限为 700,修改 id_rsa.pub 的权限和 authorized_keys的权限
~~ ~~chmod 700 ~/.ssh~~ ~~chmod 600 ~/.ssh/authorized_keys~~ ~~
- 在 Mac 端 使用 ssh-copy-id User@ip 然后输入一次密码就可以了,以后就可以正常使用别名登录了
注:* ssh-copy-id 命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。