Redhat/CentOS 7 8版本默认安装有sshd服务,并启动
基于密码的验证—用账户和密码来验证登录;
基于密钥的验证—需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。
sshd服务配置文件中包含的参数以及作用
参数 作用
Port 22 默认的sshd服务端口
ListenAddress 0.0.0.0 设定sshd服务器监听的IP地址
Protocol 2 SSH协议的版本号
HostKey /tc/ssh/ssh_host_key SSH协议版本为1时,DES私钥存放的位置
HostKey /etc/ssh/ssh_host_rsa_key SSH协议版本为2时,RSA私钥存放的位置
HostKey /etc/ssh/ssh_host_dsa_key SSH协议版本为2时,DSA私钥存放的位置
PermitRootLogin yes 设定是否允许root管理员直接登录
StrictModes yes 当远程用户的私钥改变时直接拒绝连接
MaxAuthTries 6 最大密码尝试次数
MaxSessions 10 最大终端数
PasswordAuthentication yes 是否允许密码验证
PermitEmptyPasswords no 是否允许空密码登录(很不安全)
一、配置文件
vim /etc/ssh/sshd_config
PermitRootLogin yes #允许root管理员直接登录
PasswordAuthentication no #不允许密码验证(使其只允许密钥验证,拒绝传统的密码验证方式)
二、重启并开机启动sshd服务
systemctl restart sshd && systemctl enable sshd
三、Client:
1.在客户端主机中生成“密钥对”,执行命令后面全部直接回车,需要输入服务器root密码就输入,其他全部按回车
ssh-keygen
2.把客户端主机中生成的公钥文件传送至远程服务器
ssh-copy-id 192.168.100.102
3.对服务器进行设置,使其只允许密钥验证,拒绝传统的密码验证方式。记得在修改配置文件后保存并重启sshd服务程序,此处在服务器操作
PasswordAuthentication no #不允许密码验证
4.客户端尝试登录到服务器,此时无须输入密码也可成功登录,特别方便
ssh 192.168.100.102
四、远程传输命令
echo “welcome to linux” > readme.txt
从本地复制到远程主机
scp /root/readme.txt 192.168.100.102:/home/
从远程服务器下载到本地主机
scp 192.168.100.102:/etc/redhat-release /root/
cat redhat-release