Centos下的OpenSSH服务器和客户端
目录
1、在 IP地址为192.168.98.11的Linux主机上安装OpenSSH服务器;
2、激活OpenSSH服务,并设置开机启动;
3、在IP地址为192.168.98.33的Linux主机上安装OpenSSH客户端,使用客户端命令(ssh、scp、sftp)访问服务器;
4、为了避免客户端访问服务器时需输入口令的繁琐,改用基于密钥的认证方式;
5、将OpenSSH服务器的监听端口从22改为2222;
6、只允许IP地址为192.168.98.1(Windows主机)和192.168.98.33(Linux主机)的ssh客户端访问OpenSSH服务器。
1、在 IP地址为192.168.98.11的Linux主机上安装OpenSSH服务器;
# opensssh服务端
yum install -y openssh-server
# openssh客户端
yum install -y openssh
2、激活OpenSSH服务,并设置开机启动;
systemctl start sshd
systemctl enable sshd # 设置开机自启动
systemctl status sshd # 查看sshd服务状态
3、在IP地址为192.168.98.33的Linux主机上安装OpenSSH客户端,使用客户端命令(ssh、scp、sftp)访问服务器;
ssh -p 22 root@192.168.98.11 # ssh远程登录,输入密码
# 默认端口为22
# scp [本地|远程] [本地|远程] # scp实现本地|远程到本地|远程
scp -r root@192.168.98.11/:test1 root@192.168.98.11:/test1
# !!!注意加:号
# 本地和远程的区别是是否加user和addr
# -r 是递归式复制--指的是当要复制的目录下 存在子目录,且子目录中存在子目录或文件的时候,将逐一复制它们。不递归则只有空目录
sftp root@192.168.98.11 # ssh一定要携带username,否则是当前本机用户名
4、为了避免客户端访问服务器时需输入口令的繁琐,改用基于密钥的认证方式;
密钥登录的过程
SSH 密钥登录分为以下的步骤。
预备步骤,客户端通过ssh-keygen
生成自己的公钥和私钥。
第一步,手动将客户端的公钥放入远程服务器的指定位置。
第二步,客户端向服务器发起 SSH 登录的请求。
第三步,服务器收到用户 SSH 登录的请求,发送一些随机数据给用户,要求用户证明自己的身份。
第四步,客户端收到服务器发来的数据,使用私钥对数据进行签名,然后再发还给服务器。
第五步,服务器收到客户端发来的加密签名后,使用对应的公钥解密,然后跟原始数据比较。如果一致,就允许用户登录。
# 在客户端生成自己的公钥和密钥,密钥存放在~/.ssh/id_rsq,公钥存放在~/.ssh/id_rsa.pub
ssh-keygen -t rsa
# 这里保持默认就可以了
Generating public/private rsa key pair.
Enter file in which to save the key (/home/langxi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/langxi/.ssh/id_rsa.
Your public key has been saved in /home/langxi/.ssh/id_rsa.pub.
# OpenSSH 自带一个ssh-copy-id命令,可以自动将公钥拷贝到远程服务器的~/.ssh/authorized_keys文件。
# 如果~/.ssh/authorized_keys文件不存在,ssh-copy-id命令会自动创建该文件。
ssh-copy-id root@192.168.98.11
root@192.168.98.11's password:
# 在输入一次密码就可以了
# 再尝试登录,就不需要输入密码了
ssh root@192.168.98.11
5、将OpenSSH服务器的监听端口从22改为2222;
# 修改/etc/ssh/sshd_config文件,将Port项的注释取消掉,将22修改为2222
vi /etc/ssh/sshd_config
Port 2222
# 客户端访问时,就需要加上-p参数了,因为默认端口已经改变
ssh -p 2222 root@192.168.98.11
6、只允许IP地址为192.168.98.1(Windows主机)和192.168.98.33(Linux主机)的ssh客户端访问OpenSSH服务器。
# 修改/etc/hosts.deny
vi /etc/hosts.deny
# 加入行
sshd:ALL
# 尝试访问被拒绝
ssh -p 2222 root@192.168.98.11
ssh_exchange_identification: read: Connection reset by peer
# 修改/etc/hosts.allow
vi /etc/hosts.allow
sshd : 192.168.98.1, 192.168.98.33
# 此时可访问成功
ssh -p 2222 root@192.168.98.11
Last login: Sun Dec 22 20:36:16 2024 from 192.168.98.33