OpenSSH最流行的文件传输和远程登录Linux应用程序

OpenSSH是最流行的文件传输和远程登录Linux应用程序之一,它提供了多种在客户端和服务器之间建立加密的远程终端和文件传输连接的方式。 OpenSSH Secure ">Copy (SCP) 和 Secure FTP (SFTP) 程序是FTP的安全替代品, 同时Secure Shell (SSH) 常常被用作是TELNET的一个默认替代程序。OpenSSH 并不局限于Linux系统; SSH 和 SCP 客户端可以运行在包括windows在内的绝大多数操作系统上。

数据加密通过使用特殊的数学算法来实现,这种算法把数据流中的数据分解以便使其对任何没有相应解密算法的人不可读。通过使用加密密钥,这种密钥被用来改进算法实施加密的方式,数据加密将会变得更加的可靠。只有当你拥有解密密码和相应的解密程序的时候你才能得到恢复原始数据。数据加密帮助人们阻止未授权的用户得到这些数据。SSH通过产生随机私有和公有密钥来实现加密过程。这些密钥通常只会生成一次,但是你还可以重置密钥,尽管这样会降低安全度。 如果要成功的传送加密数据,接收端首先必须拥有一份发送端的公共密钥拷贝。 以下是使用SSH进行数据传输的具体过程。

当你登陆到一个SSH服务器的时候,你将会被提醒在继续下一步之前是否下载服务器的公共密钥。同时你计算机上的SSH客户端密钥也将被上传到服务器。 这样一来,位于SSH连接端的每一台电脑都可以得到其他电脑的密钥,也就意味着这些电脑能够打开其他SSH连接端和“ 通道”发送的加密数据。

Linux中的SSH客户端用户接受到的所有公共密钥和提供这些的密钥的IP地址都存储在一个叫~/.ssh/known_hosts的文件中。当一个密钥和它相对应的IP地址不再匹配时,SSH就判断为出现了错误。 例如,当重新安装操作系统或是升级了SSH应用程序后,这些密钥可能会重置,从而使密钥和IP不匹配。当然,一些骇客行为也可以造成密钥的变更。 为了确保变更的安全性,你从服务器上获得的公有和私有密钥都存储在/etc/ssh/directory文件夹中。

注意: .ssh文件夹是一个隐藏文件夹,所有的隐藏文件夹名和隐藏文件名都以英文句号为前缀。ls -a命令能够显示指定文件夹中所有一般文件和隐藏文件。 ~/符号一般等同于你的个人文件夹并且它在能够被所有的Linux命令所识别。

Linux使用一些其他的密钥文件同样达到匿名登陆和使用SSH和SCP拷贝文件到远程服务器上的功能。这样,SSH连接就成功建立了,然后客户端将自动发送它的公用密钥以使服务器端在下次连接建立时能探测用户存储在个人文件夹中的密钥列表并核对密钥是否匹配。如果匹配,用户将允许登陆。这些文件在创建后同样被存储在你的~/.ssh文件夹中。 id_dsa和id_dsa.pub文件分别是你的私有和公有密钥,而authorized_keys文件存储着你从远程主机上接受的所有被授权的可以使用户匿名登陆他们帐户的公有密钥。

开始OpenSSH

OpenSSH将会随Linux系统默认安装。 但是在Ubuntu或是Debian上,你不得不在开始安装系统后手动安装它。 在Ubuntu或是Debian中,使用 apt-get install ssh 命令就能激活SSH安装程序。

因为SSH和SCP是同一个应用程序的组成部分,所以他们共享配置文件以及由相同的启动脚本/etc/init.d/sshd控制。

在Fedora/Redhat中,你可以用chkconfig命令来配置SSH随机启动,而在Ubuntu/Debian中则是sysv-rc-conf命令。

[root@bigboy tmp]# chkconfig sshd on

你可以通过运行sshd启动脚本,在系统启动后开启、终止和重启SSH。

[root@bigboy tmp]# service sshd start[root@bigboy tmp]# service sshd stop[root@bigboy tmp]# service sshd restart

当你每次对配置文件进行修改后,请记住重新启动SSH进程以便配置生效。

测试SSh的运行状态

你可以使用以下命令来测试SSH是否运行

[root@bigboy tmp]# pgrep sshd

你应该可以看到一个正在运行的进程号。

/etc/ssh/sshd_config配置文件

SSH的配置文件是 /etc/ssh/sshd_config。SSH默认监视你所有的NICs并使用TCP端口22。 下面是一小段配置文件内容:

# The strategy used for options in the default sshd_config shipped with# OpenSSH is to specify options with their default value where# possible, but leave them commented. Uncommented options change a# default value.#Port 22#Protocol 2,1#ListenAddress 0.0.0.0#ListenAddress ::

SSH 版本 1 和 2

SSH1版虽然在过去运行完善,但是最终还是出现了许多不足。最好的解决方法便是升级到SSH2版。在/etc/ssh/sshd_config配置文件的协议状态中设置2以使SSH2版能够在系统启动时默认运行,当然不要忘记重启SSH使你的改变生效。

## File: /etc/ssh/sshd_config#Protocol 2

时间: 2024-10-30 22:10:40

OpenSSH最流行的文件传输和远程登录Linux应用程序的相关文章

Ubuntu下通过sftp/SSH远程登录linux系统

SSH远程登录linux系统 步骤如下: 1.在需要远程访问的计算机的"新立得"里面安装openssh-server.这台计算机是远程计算机,你当前使用的计算机是本地计算机.如果使用Ubuntu或者其他Linux版本,已经安装了连接到远程计算机的软件. 2.远程计算机软件安装完毕.在本地计算机的终端里面输入: ssh username@address 其中username是远程计算机的账户名称,address是远程计算机的IP地址或者域名. 平日你希望以keir登录192.168.1.

在Windows上使用putty远程登录Linux服务器的简单教程

  Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在IDC机房的,所以我平时登录linux系统都是通过远程登录的.Linux系统中是通过ssh服务实现的远程登录功能.默认ssh服务开启了22端口,而且当我们安装完系统时,这个服务已经安装,并且是开机启动的.所以不需要我们额外配置什么就能直接远程登录linux系统.ssh服务的配置文件为 /etc/ssh/sshd_config,你可以修改这个配置文件来实现你想要的ssh服务.比如你可以更改启动端口为36000. 如果你是

阿里云如何远程登录Linux云服务器

  登录 Linux 实例 本地操作系统不同,远程登录云服务器 ECS 实例的工具也不同.登录实例的方式,请参见下表. 本地 OS 实例 OS 登录方式 管理终端 Putty SSH 命令 SSH Control Light Linux Linux     √   Windows √ √     Mac √   √   iPhone 手机       √ Android 手机       √ 本地为 Windows 系统 云服务器 ECS 实例创建好之后,您可以使用以下任意一种方式登录服务器:

非交互方式远程登录linux主机并更换IP地址

问题分析: 根据开发组同事反应,通过VCenter对RHEL6.0以下版本的系统进行克隆的时候,无法使用高级选项进行IP的指定操作,从而通过CloudStack对新的实例指定IP也是不能实现的,而且,不能够使用DHCP服务器解决该问题,否则会导致新虚拟机IP地址跟指定IP的不一致,也可能导致整个系统中IP地址分配的混乱. 解决思路: 给RHEL6.0以下系统制作的模板均指定一个固定的保留IP地址,比如192.168.3.0/24网段中,保留192.168.3.240~192.168.3.250给

远程登录linux主机更换IP地址

 问题分析: 根据开发组同事反应,通过VCenter对RHEL6.0以下版本的系统进行克隆的时候,无法使用高级选项进行IP的指定操作,从而通过CloudStack对新的实例指定IP也是不能实现的,而且,不能够使用DHCP服务器解决该问题,否则会导致新虚拟机IP地址跟指定IP的不一致,也可能导致整个系统中IP地址分配的混乱. 解决思路: 给RHEL6.0以下系统制作的模板均指定一个固定的保留IP地址,比如192.168.3.0/24网段中,保留192.168.3.240~192.168.3.250

java如何远程调用linux的命令或者脚本

Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar) 使用步骤如下: 1.导包 官网下载: http://www.ganymed.ethz.ch/ssh2/ maven坐标: <dependency> <groupId>com.ganymed.ssh2</groupId> <artifactId>ganymed-ssh2-build</artifactId> <version>210&l

sys不能远程登录解决办法

SYSDBA不能远程登录(此处是不是指CRT远程登录) SYSDBA不能远程登录分两种情况: 1:提示的是ORA-01017:用户名密码出错 C:Userskerry>sqlplus "sys/wgods123@gsp as sysdba" SQL*Plus: Release 11.2.0.1.0 Production on 星期五 1月 11 11:08:07 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved.

Linux服务器远程登录服务器go工具用法

背景 平时工作中总是需要登录到线上服务,以解决各种问题,比如: 远程登录线上日志机器查看PHP Error Log.Mysql Error Log等 登录QA的测试机检查代码是否正常发布.各项配置是否正确 登录个人开发机 但是公司服务器都是需要通过跳板机登录,每次登录线上机器都需要先到跳板机登录一下,再登录到目标机器,很繁琐,而且必须得记得住目标机器的IP或者机器名才能尽快登录上去,要不然还得一顿查... 所以弄了个小工具,实现快捷登录(其实是几年前写的一个小脚本,最近升级了一下),分享出来大家

使用vim管理远程登录桌面

        管理windows的服务器越来越多,使用mstsc的rdp远程登录不是非常方便.非常需要一个管理远程登录桌面的程序,这些程序在linux确实有许多,windows管理工具下我自己没有找到,要么需要钱.我需要的功能很简单,就是减少击打键盘以及鼠标的次数,快速登录windwos服务器.     我突然想起我使用putty管理linux机器,也是遇到相似的问题,管理的linux机器越多,使用putty定位要维护的机器越困难.     思路有了,实现就很简单.     建立一个文本文件r