一、概念
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
二、基本用法
安装
sudo apt install openssh-server
ssh启动方法
# 方法一:
sudo /etc/init.d/ssh start
# 方法二:
sudo systemctl start sshd
# 方法三
sudo service ssh start
# 或
sudo service sshd start
ssh服务配置,查看配置文件官方文档
man sshd_config
使用
SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。
ssh user@host
如果本地用户名与远程用户名一致,登录时可以省略用户名。
ssh host
SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用 -p
参数,可以修改这个端口。
ssh root@192.168.1.4 -p 1234
三、SSH秘钥登录
1.制作秘钥对
ssh-keygen
2.复制到远程主机
方法一:通过命令导入
简易导入
ssh-copy-id user@hostname
指定文件路径导入
ssh-copy-id -i id_rsa.pub user@hostname
ssh-copy-id
会检测id_rsa私钥文件是否存在,可以使用touch id_rsa
即可。
方法二:直接操作文件
在/root/.ssh/authorized_keys
中追加公钥。
cat ~/.ssh/id_rsa.pub | ssh user@hostname `cat >> .ssh/authorized_keys`
注意:.ssh
目录权限需要为:755,否则将无法连接。
3.导入私钥
ssh-add
向身份验证代理添加私钥身份,当不加参数运行时,将会添加以下文件:~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk,~/.ssh/id_ed25519, 和 ~/.ssh/id_ed25519_sk
. 加载私钥后,ssh-add将尝试在私钥文件名后附加-cert.pub获得的文件名中加载相应的证书信息。可以在命令行中指定其他文件名。
# 添加 id_rsa_test 私钥文件, 添加前需要确认私钥文件的权限为600否则将添加
ssh-add -k id_rsa_test
创建ssh密钥脚本
#!/bin/bash
work_dir=/root/.ssh
# 创建.ssh 文件夹
if [ ! -e $work_dir ]
then
mkdir $work_dir
echo "创建.ssh文件夹"
else
echo ".ssh已存在无需创建"
fi
# 切换工作目录
cd $work_dir
# 生成ssh秘钥对
ssh-keygen
cat id_rsa.pub >> authorized_keys
echo "请妥善保管私钥:"
cat id_rsa