SSH (SFTP)连接

定义

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

功能

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道" 。

安全

从客户端来看,SSH提供两种级别的安全验证。

第一种级别(基于口令的安全验证)
  • 只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
  • 需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。
  • 如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

具体应用场景

本地操作直接shell登陆处理,那远程操作就需要ssh,ssh提供加密验证和传输,提高通信的安全程度。

C端(Client客户端)

每一个客户端需要生成一个对密钥:

$ ssh-keygen -t rsa
$ > passphrase: <passwd> # used when decrypt privatekey on connecting to server
$ ssh-copy-id -i ~/.ssh/id_rsa.pub myname@www.server.com

在~/.ssh下生成私钥id_rsa和公钥id_rsa.pub,

同时将公钥传给sshd服务器www.server.com, 存放于服务器的~/.ssh/authorized_keys文件中,每行一个授权客户;

配置连接不同服务器使用不同的账号和密钥:

$ cat ~/.ssh/config

host server1
  user name1
  hostname ip1
  port 22
  identityfile ~/.ssh/id_rsa1
 
host server2
  user name2
  hostname ip2
  port 23
  identityfile ~/.ssh/id_rsa2

$ ssh server1

$ ssh server2
S端(Server服务端)

在服务器添加访问账户:name1:passwd1

在/etc/ssh/sshd_config配置登录选项和密钥位置,允许ssh登录的用户

AllowUsers  name1

PermitRootLogin no

StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no

配置好以后, 重启一下服务

# after modify sshd_config, restart sshd
$ /etc/init.d/ssh restart
客户端登录
使用SSH连接登录
$ ssh name1@<server1>
[name1@server1]$ 

$ ssh name1@<server1> "echo connected >> log/ssh.log"
$ ssh -i ~/.ssh/id_rsa2 name2@<server2>
$ ssh server2
使用SFTP连接登录
  • 定义:
    • sftp是SSH File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。
sftp常用命令:
  ls  查看当前目录下文件

  help 查看sftp支持哪些命令

  cd 指定目录

  pwd 查看当前目录

  get xxx.txt 下载xxx文件

  put xxx.txt 上传xxx文件

  quit / bye / exit 退出sftp

  sftp  xxx.xxx.xxx.xxx   登录root用户

  sftp zygf@xxx.xxx.xxx.xxx  进行登录zygf用户
	
  sftp server1  登录config里面配置的目标地址, 用户先关信息都在config里面
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据你提供的引用内容,我理解到你遇到了一个问题,即在使用SSH 8.5时,SFTP连接会瞬断。这可能是由于一些配置或网络问题导致的。为了解决这个问题,我建议你采取以下步骤: 1. 首先,请确保你的SSHSFTP服务都是最新版本,并且已经正确安装和配置。你可以参考中的脚本分离方法,确保每个服务都能够独立运行,并按照你的需求进行配置。 2. 确认网络连接是否稳定。检查你的网络连接是否存在任何问题,例如网络延迟、丢包或带宽限制等。这些问题可能导致SFTP连接中断。你可以尝试使用其他网络连接或者检查网络设备以解决该问题。 3. 检查SSHSFTP配置文件。在SSH服务器和客户端上,你需要确保相关配置文件正确设置。特别是要检查SSH服务器的MaxSessions参数是否设置正确,以及SFTP子系统是否被启用。你可以参考中的资料,了解如何正确配置SSHSFTP。 4. 检查SSHSFTP日志。通过查看SSHSFTP的日志文件,你可以获取更多有关连接断开的详细信息。日志文件通常位于/var/log目录下,你可以搜索相关日志来查看是否有任何错误或警告。 综上所述,为了解决SSH 8.5版本下SFTP连接瞬断的问题,你可以通过检查和更新软件版本、确认网络连接稳定性、检查配置文件和查看日志文件来排除可能的问题。希望这些步骤能帮助你找到并解决问题。 - SSHSFTP分离脚本 - SSHSFTP分离相关资料
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值