今天我们也来聊聊 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
设置合适的权限。