SSH是一种网络协议,用于计算机之间的加密登录。
如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。
ssh user@hostname -p port
简单使用 - 别名
如果拥有多个 ssh 账号,要记住每个ssh 账号的参数,那是多么蛋疼的事情。
还好,ssh 提供一种优雅且灵活的方式来解决这个问题,就是利用 ssh 的用户配置文件 config 管理 ssh 会话。ssh 的用户配置文件是放在当前用户根目录下的 .ssh 文件夹里(~/.ssh/config 以及 /etc/ssh/ssh_config,不存在则新创建一个),其配置写法如下:
-
Host yoursite
-
HostName yoursite.com
-
User yourname
-
Port 22
-
IdentityFile ~/.ssh/id_rsa_site
-
IdentitiesOnly yes
现在就可以使用简短的名字来登录了,而且可以添加多个目标的话,用空行隔起来就可以了。
配置github的ssh key
1. 配置git用户名和邮箱
git config user.name "用户名"
git config user.email "邮箱"
在config后加上 --global 即可全局设置用户名和邮箱。
2. 生成ssh key
ssh-keygen -t rsa -C "邮箱"
然后根据提示连续回车即可在~/.ssh目录下得到id_rsa和id_rsa.pub两个文件,id_rsa.pub文件里存放的就是我们要使用的key。
3. 上传key到github
4. 测试是否配置成功
ssh -T git@github.com
-T 选项的作用是避免请求一个可交互的文本终端(tty,Teletype的简称),如果没有这个参数,某些服务可能会终止事务。
无密码登录
打开终端,本地生成id_rsa(私钥),id_rsa.pub(公钥):
ssh-keygen -t rsa
公钥(id_rsa.pub)和私钥(id_rsa)默认生成在:~/.ssh/ 目录下。
拷贝公钥到远程服务器上,或则其他地方whatever…
scp ~/.ssh/id_rsa.pub username@hostname.com:~/.ssh/
上面的username换成你的用户名,和服务器地址。然后你需要登录到你的远程服务器上操作。
登录远程服务器操作
ssh username@hostname.com
输入密码后登录,也许是你最后一次登录服务器需要密码。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
阅读(5638) | 评论(0) | 转发(0) |