Linux 安装ssh

SSH(Secure Shell)安全外壳协议,建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议

安装ssh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#查看ssh服务是否开启
ps -e |grep ssh
#安装ssh服务,openssh是ssh的开源实现方式
#只要安装了ssh服务,本地linux可以当做服务器
sudo apt install openssh-server
sudo yum install openssh-server -y
#本地安装ssh客户端,可能已经安装
sudo apt install openssh-client
sudo yum install openssh-clients -y
#配置ssh
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes 把注释去掉
#开启ssh服务
sudo service sshd start
sudo systemctl start sshd.service
#开机启动SSH服务
sudo chkconfig sshd on
sudo systemctl enable sshd.service
#连接,端口默认为22,可以不写
ssh -p 22 userName@192.168.1.100


使用别名登录ip

打开~/.ssh/config,不存在就自己创建一个

1
2
3
4
5
Host AAAAA #服务器主机名
HostName 192.168.0.222 #服务器地址
User work #work为登陆用户名,不是自己电脑的名字
Port 22 #主机端口,默认是22
IdentityFile /home/me/.ssh/id_rsa #自己生成的私钥的文件路径

1
2
#使用别名登录
ssh AAAAA


多对ssh管理

指定不一样的私钥名

1
ssh-keygen -t rsa -f ~/.ssh/id_rsa.second

配置~/.ssh/config,在原有的基础上增加新的字段

1
2
3
4
5
6
7
8
9
10
11
# Default github user(first@mail.com) 默认配置,一般可以省略
Host github
Hostname github.com
User git
Identityfile ~/.ssh/id_rsa_github
# second user(second@mail.com) 给一个新的Host称呼
Host secondgithub #主机名字,不能重名
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa.second #私钥路径


设置SSH免密码登录

  1. 生成ssh key
  2. 私钥放在本地~/.ssh目录
  3. 公钥放在服务器的~/.ssh/authorized_keys
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#1.客户端本地生成公钥和私钥,rsa是加密方式
ssh-keygen -t rsa
# ~/.ssh目录中创建两个名为id_rsa和id_rsa.pub的文件,id_rsa是私钥,id_rsa.pub是公钥
#2.设置权限
chmod -R 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa #默认就是600
#3. 复制公钥到服务器然后写入到~/.ssh/authorized_keys 方法一
# 使用SSH远程登陆到服务器,发现家目录中还没有.ssh目录,使用mkdir创建
mkdir .ssh
# 发送公钥
scp ./id_rsa.pub alice@192.168.0.10:/home/alice/.ssh
# 将公钥追加写入~/.ssh/authorized_keys中,若authorized_keys不存在,则会创建并写入
cat id_rsa.pub >> ~/.ssh/authorized_keys
#修改authorized_keys的权限为600,并删除公钥文件
rm id_rsa.pub
# 复制公钥到服务器然后写入到~/.ssh/authorized_keys 方法二
# ssh-copy-id 命令可以把本地主机的公钥复制到远程主机的 authorized_keys 文件上
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#4.配置ssh,如果发现依旧无法连接,考虑是否打开配置
sudo vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys


清除SSH的私钥密码

1
2
3
4
5
ssh-keygen -p
# 选择需要修改的私钥,默认是/home/username/.ssh/id_rsa
# 选好文件后按回车,会提示你输入旧密码。
#输入好后会提示输入新密码。
#直接回车,提示确认新密码再直接回车,此时指定的私钥的密码就被清除了

SSH相关命令参考 Linux网络管理 远程登录


补充:
https://wiki.centos.org/HowTos/Network/SecuringSSH

参考: