启用ssh服务
安装ssh
sudo apt-get install openssh-server
启用ssh
sudo systemctl enable ssh && sudo systemctl start ssh
查看ssh服务状态
sudo systemctl status ssh
生成密匙对并在服务器中保存
本地安装ssh客户端
sudo apt install openssh-client
本地生成ssh密匙对
mkdir -p ~/.ssh && cd ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t ed25519 -f techlayman_ed25519 -C "root@techlayman.com"
SSH -keygen命令允许通过RSA、ECDSA和ED25519算法生成SSH密钥对。RSA得到了广泛的使用和最好的支持,而ED25519提供了更好的安全性和良好的性能。
在代码中,你可以用你喜欢的加密算法替换“ed25519”。" -f techlayman"指定键名,“-C “root@techlayman.com” ” 是可选的。
设置密匙
cd ~/.ssh && ls -la
发现有id-rsa和id-rsa.pub两个文件,其中 id-rsa为私钥, id-rsa.pub 则为公钥。
cat id_rsa.pub >> techlayman_keys
chmod 600 techlayman_keys
chmod 700 ~/.ssh
将公匙传到服务器
ssh-copy-id -i techlayman_keys root@techlayman.com -p 22
windows中没有ssh-copy-id命令方便地添加公钥到远程主机,需手动添加。
修改主机sshd_config配置文件
nano /etc/ssh/sshd_config
#是否允许管理员直接登录,'yes'表示允许
PermitRootLogin yes
#是否允许支持基于口令的认证
PasswordAuthentication no
#是否允许任何的密码认证
ChallengeResponseAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
UsePAM yes
重启主机ssh服务
service sshd restart
多个主机免密登录设置
找到私钥文件在本地机上的存储路径,运行以下命令修改私钥文件的属性。
chmod 400 ~/.ssh/ecs.pem
运行以下命令,进入用户主目录下的.ssh目录,并创建config文件。
cd ~/.ssh
vim config
在config配置文件内,按i进入编辑模式,添加如下配置项。
# 输入ECS实例的别名,用户SSH远程连接。
Host ecs1
# 输入ECS实例的公网IP地址。
HostName 121.196.**.**
# 输入端口号,默认为22。
Port 22
# 输入登录账号。
User root
# 输入.pem私钥文件在本机的地址。
IdentityFile ~/.ssh/ecs.pem
# 输入ECS实例的别名,用户SSH远程连接。
Host ecs2
# 输入ECS实例的公网IP地址。
HostName 121.196.**.**
# 输入端口号,默认为22。
Port 22
# 输入登录账号。
User root
# 输入.pem私钥文件在本机的地址。
IdentityFile ~/.ssh/ecs.pem
重启SSH服务,命令行连接实例
#重启SSH服务
service sshd restart
#行命令连接至实例
ssh ecs