基本格式
- 最简单
ssh username@hostname
## 比如以root用户登录局域网的某台机器 , 机器IP是 192.168.1.3
ssh root@192.168.1.3
# 会要我输入root的密码
- 登录指定的端口
ssh username@address -p port
## 比如以root用户登录局域网的某台机器 , 机器IP是 192.168.1.3 端口是 1024
ssh root@192.168.1.3 -p 1024
# 会要我输入root的密码
使用rsa
在上面的命令中, 我必须要输入用户的密码才行。 由于工作需要,我经常的登入登出各个服务器, 每次输入密码显然很麻烦, 当然也可以多多打开终端,登入每个服务器就不登出。 但是这样又带来了切换终端的痛苦, 所以还是换个办法 : 试用rsa 密钥配对的方式登入。
生成 ras 密钥对文件
#命令 :
ssh-keygen -t rsa
#输出 :
Generating public/private rsa key pair.
# 输入你打算存放私钥的文件名, 公钥自动存放在相同文件夹下在私钥的基础上加上 .pub
Enter file in which to save the key (/home/lguo/.ssh/id_rsa): ./Templates/id_rsa
#下面需要输入密码 , 这里直接Enter就好. ( 除非你的系统有其他人也在使用,而你不打算让其他人使用这个私钥)。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./Templates/id_rsa.
Your public key has been saved in ./Templates/id_rsa.pub.
The key fingerprint is:
bc:69:b9:4f:a8:55:5f:05:91:47:b2:a7:ae:f2:6b:b3 [MD5] lguo@linux-xmq3
The key's randomart image is:
+--[ RSA 2048]----+
| ++.|
| .+.|
| ..o|
| . + |
| S . o |
| * . o |
| B . . . |
| + o. o. |
| . ...+E+ |
+--[MD5]----------+
使用公钥和私钥配置两台机器的ssh
配置被登录的机器
- 将公钥拷贝到被登录的机器。
scp ./Templates/id_rsa.pub root@192.168.1.3:~/
# 会要我输入root的密码
- 将公钥加入被登录机器的公钥文件
ssh root@192.168.1.3
# 会要我输入root的密码
cat id_rsa.pub >> .ssh/authorized_keys # 注意这里使用追加, 不要覆盖别人的公钥。
- 确保被登录机器的ssh服务器支持使用rsa密钥登录
# 我已经在被登录的服务器了。
vim /etc/ssh/sshd_config
RSAAuthentication yes # 找到着一个 确保不是no 。 改了这个文件需要重启sshd ( 通过service命令或者 /etc/init.d/sshd )
配置登录的机器
- 保存私钥
# 由于这是登录内网 192.168.1.3 的私钥,他的名字带着_3 只是个人习惯。
mv ./Templates/id_rsa ~/.ssh/id_rsas/id_rsa_3
- 确保自己的ssh客户端支持rsa登录。
exit #登出192.168.1.3 回到自己的登录服务器
vim /etc/ssh/ssh_config
RSAAuthentication yes # 找到着一个 确保不是no 。
IdentityFile ~/.ssh/id_rsas/id_rsa_3 # 指定私钥文件, 多个私钥就多几行这个配置。
使用rsa密钥登录
ssh root@192.168.1.3
# 这里会直接登录上, 不会在问我要root的密码。
。
使用服务器别名
虽然上面不再需要用户的密码,但是每次登录我都要手动输入用户名和地址。尤其是地址是IP的时候, 很容易打错或者混淆。
配置一个ssh服务器
vim .ssh/config
## 多个服务器就多个这样的配置, 追加在这个文件里面
Host local_3
HostName 192.168.1.3
Port 1024
User root
# HostName 指定登录的主机名或IP地址
# Port 指定登录的端口号
# User 登录用户名
# IdentityFile 登录的公钥文件
# IdentitiesOnly 只接受SSH key 登录
# PubkeyAuthentication
别名登录
ssh local_3
# 直接登录服务器。