目录
1、SSH Server 服务安装
1.1、安装OpenSSH服务器 并设置开机启动
安装 ssh
在开始配置SSH服务器之前,我们需要先确保系统上已经安装了OpenSSH服务器软件。大多数Linux发行版都会默认安装OpenSSH服务器,但是为了确保,可以使用以下命令进行检查和安装:
sudo apt update
sudo apt install openssh-server
启动ssh
sudo systemctl start ssh
设置ssh开机启动
systemctl enable ssh
重启SSH服务器
完成配置后,需要重启SSH服务器才能使配置生效。可以使用以下命令重启SSH服务器:
sudo service ssh restart
查看ssh服务状态
sudo systemctl status ssh
1.2 配置 SSH 服务器
SSH服务器的配置文件位于/etc/ssh/sshd_config
。可以使用文本编辑器(如vi、nano等)打开该文件进行配置。
更改SSH服务器监听的端口(可选)
默认情况下,SSH服务器监听的端口是22。为了增加安全性,可以选择更改为其他未被使用的端口。在配置文件中找到以下行,并将其注释掉(在行前面添加#
),并添加新的端口号。
#Port 22
Port 12345
禁止Root登录(推荐)
禁止root用户直接登录是一个很好的安全措施。在配置文件中找到以下行,并确保其被设置为“no”。
PermitRootLogin no
设置允许访问的用户
可以在配置文件中使用AllowUsers
参数定义允许访问SSH服务器的用户。可以指定多个用户,使用空格分隔。
AllowUsers user1 user2
2、Linux生成私钥和公钥
先查看有没有路径 ~/.ssh , 如果有证明以前生成过了,如果没有就需要重新生成。
# 生成密钥
ssh-keygen -t rsa -b 4096 -P "" -C "xxxxx@163.com"
-t 指定密钥类型, dsa | ecdsa | ed25519 | rsa
-b RSA类型密钥的大小(长度),通常至少应该是 2048,默认 3096
-C 指定一个邮箱
-P 指定密码(空字符串表示ssh连接时不需要输入密码)
1 不用上面那么多参数配置,输入如下命令即可,其他默认:
ssh-keygen -t rsa
# 或者添加邮箱
ssh-keygen -t rsa -C "你的邮箱"
2 直接三次回车:会生成两个文件:~/.ssh/ id_rsa / 和~/.ssh/id_rsa.pub,分别为私钥和公钥
私钥:id_rsa,公钥:id_rsa.pub
3、免密登录
3.1 初级:携带密码登录
1.安装 sshpass
sudo apt-get install sshpass
2.携带密码登录
sshpass -p '12345678' ssh username@10.0.5.10
3.2 中级:免密登录
方法1:把本机公钥 id_rsa.pub 加入到服务器的~/.ssh/authorized_keys 文件中, 如果没有authorized_keys 文件,则创建一个 touch authorized_keys
公钥内容,即id_rsa.pub 文件中的内容复制下来,copy到服务器的 ~/.ssh/authorized_keys 文件中即可
方法2:将本机公钥复制到 authorized_keys 文件中,然后将authorized_keys复制到服务器的 ~/.ssh/ 路径下
# 将本机公钥复制到 authorized_keys 文件中
cat id_rsa.pub >> authorized_keys
然后,通过下面指令就可以免密码登录到远程机器了。
ssh username@10.0.5.10
3.3 高级用法
上面的方法还是要输入 username@IP 依然感觉很麻烦,更简单的方法是:
0、先使用中级的方法实现免密登录后,再执行下面的操作
1、在本地机器的目录 ~/.ssh 下找到config文件(若不存在,自己创建一个 touch config),按如下进行配置, 如果有多个远程机器,则配置多个即可
Host vps # vps 是一个便于你区别这是哪台机器的名字
HostName xx.xx.xx.xx # 目的机器的ip
User username # ssh登陆时候的用户名
Port 22 # ssh所使用的端口,默认是22,如果不是自行修改
# IdentityFile /Users/.ssh/id_rsa # 本地私钥文件路径,注意:这个不知道什么用,可以不设置,也可以用
配置完成之后,下面指令就可以直接免密登录远程机器了
ssh vps