最近应公司要求,需要对文件数据进行远程传输与备份操作,特此写了一篇文章记录下了关于ssh、scp以及rsync的应用配置全过程,可能过程太过罗嗦,但主要就是想在不遗漏每个过程的情况下对此进行阐述,希望大家能够体谅。当然类似的文章还有很多,本文仅以个人的名义来写的,不喜勿喷!如果文章中有什么错误的地方还请各位大神多多指点!万分感谢!
一、ssh在文件共享里面的应用
这个ssh可不仅仅是一个远程登录的一个服务,其实呢!它包括了几个组件:ssh(远程登录)、sftp(文件共享【类似FTP】)、scp(文件共享【类似cp拷贝】)。所以大家在听到ssh的时候可千万不要认为这个软件包在用的时候只能实现远程登录,别的什么事情都干不了,实际上不是这样的。希望大家明白!
首先我们先来看一下SSH远程登录的事情,我们正常使用的客户端的远程登录管理工具(如:SecureCRT、Xshell等..)来做登录管理的控制,但是,
如果我们想从一台Linux服务器登录到另一台Linux服务器的话,我们应该怎么处理?
我们可以使用ssh命令【ssh远程登录:ssh 用户名@远程主机IP地址】进行登录,但是我们登录的时候要注意以下规则:
a.不能使用空密码登录
b.不能使用root用户身份登录(具体根据centos版本来,目前centos版本中多数都是默认是允许root用户登录,这里只是作为例外考虑,为了安全问题,一般我们建议搭建不要使用root用户登录,因此建议搭建使用root用户去授权普通用户去进行日常操作)
下面来看一下ssh命令具体的使用方式:
ssh远程登录:ssh 用户名@远程主机IP地址
常用选项:
-2 强制使用第二代ssh协议(ssh发展的两个版本,这里建议大家使用ssh2,因为它的安全性会更高点,我这里为了便于演示,有些可能就直接默认登录,在此声明一下,我们现在使用的ssh版本都是这个openssh它,它同时支持了ssh1和ssh2)
-p 端口号
例如:
ssh -2 formal@192.168.1.18
案例:
我这边准备两台Centos服务器,信息如下:
机器一:192.168.1.17 已存在普通用户:formal
机器二:192.168.1.18 已存在普通用户:formal
例如我这里从17服务器远程登录到18服务器:
--登录17服务器,切换为普通用户,如图1:
su - formal
--使用ssh命令从17服务器远程登录到18服务器,提示你是否继续连接登录,直接输入yes即可,如图2:
ssh formal@192.168.1.18
由于我们没有对formal用户设置密码,因此我们直接回车.就会发现,请求被拒绝。这是因为登录的时候centos系统默认是不能使用空密码登录。因此,我们在这里将两台服务器的普通用户同时设置一个密码,以备后面使用,如图3:
//设置密码(这里要特殊说明一下,使用普通用户直接设置密码的时候,可以直接使用passwd命令进行设置,但是要求密码不能过于简短与简单,要包含特殊字符,否则不让你设置成功。如果使用root用户设置密码,可以使用passwd 用户名,进行设置,使用root用户设置密码时候可以使用简单的密码。为了便于测试,我这里直接使用root用户设置密码.),这里密码为:formal
passwd formal
//删除密码(root用户删除方式:passwd -d formal;普通用户删除方式:passwd -d此处要说明一下,用root用户为普通用户创建的密码只能用root用户删除)
--好了,既然用户密码我们已经设置好了,那就继续登录试试,输入密码,登录成功。如图4:
ssh formal@192.168.1.18
--接下来为大家介绍一下ssh的常用配置。这里主要为大家介绍一下怎么禁止root用户登录,还有就是怎么样改变ssh的端口号。
--使用root用户,编辑18服务器的/etc/ssh/sshd_config文件,我们可以看到PermitRootLogin yes这句话是注释掉的,默认情况下都是可以使用root用户登录的因此这句话注释掉与不注释掉都是可以使用root用户登录的.如图5,5-1:
ssh root@192.168.1.18