一、环境搭建:
本地搭建工具清单:
1)、Linux(centos)操作系统;
2)、vmplayer虚拟机;
3)、ssl ftp工具 FileZilla FTP Client;
注意以上工具中vmplayer和centos 非必须,可以替换为docker一键搭建Linux操作系统;
1、搭建一个Linux操作系统,这里测试可以搭建在自己pc电脑上,这里我们选用云服务器测试,一键部署centos7.2服务器,如使用本机安装需要先去centos官网去下载最新版本操作系统,官网下载地址见https://www.centos.org/download/。
2、安装一个支持ssl ftp的 FileZilla FTP Client工具,下载window安装包,下一步即可傻瓜式的完成安装;window下载地址https://filezilla-project.org/download.php
这里不具体介绍vmplayer 如何安装centos步骤,如不懂的,可以网上搜索,应该有大量的文章介绍;
下一步我们继续介绍window如何与linux互传文件的相应的配置,其实原理很简单,利用sshd 这个服务去实现;
二、简单介绍一下ssh,以及sshd与ssh 有什么差别;
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
1、sshd 是ssh的服务端程序脚本;
2、ssh 是使用 ssl链接的ssh客户端;
这里由于我们要实现window与linux的互传,需要在Linux上安装sshd并启动;
查看SSH是否安装(检查是否装了SSH包)。
输入命令:rpm -qa | grep ssh 或者(rpm -qa | grep openssh)
检查系统是否安装了ssh,如有即可直接使用;
下面是yum安装脚本:
先来搜索一下sshd
1、yum search sshd
Loaded plugins: fastestmirror, replace
Determining fastest mirrors
* base: mirrors.cloud.aliyuncs.com
* extras: mirrors.cloud.aliyuncs.com
* updates: mirrors.cloud.aliyuncs.com
* webtatic: uk.repo.webtatic.com
========================================= Matched: sshd =========================================
fail2ban.noarch : Daemon to ban hosts that cause multiple authentication errors
gsi-openssh-server.x86_64 : SSH server daemon with GSI authentication
jsch.noarch : Pure Java implementation of SSH2
libnss-mysql.x86_64 : NSS library for MySQL
openssh-server.x86_64 : An open source SSH server daemon
2、我们找到了openssh-server.x86_64 这个软件,开始安装:
yum install openssh-server.x86_64
3、等到安装完后,可以使用默认到配置信息启动;
service sshd start 或者 sudo /etc/init.d/sshd start
4、查看sshd是否成功启动
ps -ef|grep sshd 或是 sudo /etc/init.d/sshd status 或者(service sshd status)
5、停止sshd命令
service sshd stop 或是 kill pid 或 sudo /etc/init.d/sshd stop
以上就是sshd 的整个安装运行过程;
三、其他高级设置
如自动随系统启动:
1、检查sshd是否在本运行级别下设置为开机启动
输入命令:chkconfig --list sshd
查看CentOS 系统中SSH服在本运行级别下是否已经设置为开机启动,如果没设置启动就使用如下命令[chkconfig --level 2345 sshd on]设置下即可。
2、设置SSH服务为开机启动。
输入命令:chkconfig sshd on 即可。
注:若是 chkconfig sshd off 则禁止SSH开机启动。
OpenSSH服务器配置 vim /etc/ssh/sshd_config 文件重要参数以及作用,这里根据自己的需求进行设置。
# cat /etc/ssh/sshd_config |grep -v '#'|grep -v ^$
Port 22 --监听端口
Protocol 2 --使用版本2
ListenAddress 0.0.0.0 --监听地址
LoginGraceTime 2m --登录超时时间
PermitRootLogin yes --允许root通过ssh登录
MaxAuthTries 6 --密码尝试6次
RSAAuthentication yes --支持ras加密
PubkeyAuthentication yes --是否支持密钥对验证
AuthorizedKeysFile .ssh/authorized_keys --服务端更新密钥对密钥对验证时,客服端公钥存储文件
PermitEmptyPasswords no --是否允许空密码登录
PasswordAuthentication yes --是否支持账号/密码登录方式
UseDNS no --禁用DNS反解
Subsystem sftp /usr/libexec/openssh/sftp-server --支持sftp
AllowUsers root 只允许root 可以远程
DenyUsers
AllowGroups
参数 | 作用 |
Port 22 | 默认的sshd服务端口 |
ListenAddress 0.0.0.0 | 设定sshd服务器监听的IP地址 |
Protocol 2 | SSH协议的版本号 1,2 |
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/no | 设定是否允许root管理员直接登录 |
StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 |
MaxAuthTries 6 | 最大密码尝试次数 |
MaxSessions 10 | 最大终端数 |
PasswordAuthentication yes/no | 是否允许密码验证 |
PermitEmptyPasswords yes/no |
是否允许空密码登录(很不安全) |
四、使用FileZilla FTP Client 来互传文件
FileZilla FTP Client 的使用很简单,打开软件,填入你的服务器IP、默认端口(22为sftp,21为ftp)、账号、密码即可成功登录;
登录成功后即可看到文件清单,可以与window愉快的互传文件了;
当然sshd 的强大不仅仅是互传文件哦,你还可以通过一些ssh客户端工具(如SSH 、Xshell、Putty 等)管理你的整个Linux操作系统;