参考链接:
- https://code.tutsplus.com/tutorials/ssh-what-and-how–net-25138
- http://serverfault.com/questions/167416/how-can-i-automatically-change-directory-on-ssh-login
实验环境
client端:mac10.12 ,win10 1607(使用git bash)
server端:ubuntu14.04
目的
使用ssh server-nickname
即可登录服务器,无需输入密码,并且直接登录到指定文件夹如’var/www’。
免密登录
- 将公钥传到sever
首先建立~/.ssh
文件夹存放ssh key的公钥和私钥。
mkdir ~/.ssh
然后创建ssh key,rsa是ssh协议的第一个版本,第二个版本是dsa,comments可以是“name@example.com”。
ssh-keygen -t rsa -C "comments to specify"
赋予文件夹权限
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
再将public key 传到服务器,下面命令回家public key加在~/.ssh/authorized_keys
文件上,输完命令会要求输入密码。
cat ~/.ssh/id_rsa.pub | ssh root@example.com 'cat - >> ~/.ssh/authorized_keys'
打开一个新的终端,再次使用ssh root@example.com
登录,发现不需要使用密码了。
- 配置clinet的config文件
打开,如无则创建~/.ssh/config
(config是文件不是文件夹),添加以下内容:
Host nickname
HostName example.com
User username
其中nickname,是该服务器的代号,任意能区分就行,比如“520”。Hostname填写服务器地址,username你可能需要写root。
如果没有问题,运行以下命令即可登录:
ssh nickname
修改登录目录
- 修改,无则创建
~/.bash_profile
- 在文件末尾,添加
cd /path/to/your/destination/
- 再试一次即可。