在linux命令中登陆ssh服务的命令是ssh ip,例如:ssh 19218612。
ssh服务是一个守护进程(demon)。系统后台监视客户端的连接。ssh服务端的进程名为sshd,它负责实时监视客户端的请求(IP 22端口),包括交换公共密钥和其他信息。
ssh服务器由两部分组成:openssh(提供ssh服务) 、openssl(提供加密的程序)。
ssh客户端可以用XSHELL,Securert,Mobaxterm和其他工具连接。
扩展资料:
服务器启动的时候自己产生一个密钥(768bit公钥),本地的ssh客户端发送连接请求到ssh服务器,服务器检查连接点客户端发送的数据和IP地址;
确认合法后发送密钥(768bits)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结合成密钥对key(1024bit),发回给服务器端,建立连接通过key-pair数据传输。
一、安装Windows系统,注意进入界面时,不要选择或输入Microsoft账户,以免登录用户名存在问题。二、安装配置OpenSSH服务器端,开启端口(一般默认已开启)设置默认shell,三步缺一不可。请参考官网步骤>
企业内部大部分服务器都只有内网,一般可以使用NAT方式正向代理访问公网资源。对于Linux来说一般通过ssh登录服务器,在没有公网IP的情况下可以修改ssh config配置文件,利用一台可以接入内网并具有公网IP的服务器作为代理或者称为Tunnel跳板机来管理,可以灵活定制访问规则并优化ssh参数让管理更加轻松。
2019年01月31日 - 初稿
阅读原文 - >基于SSH协议开发的一款远程管理服务程序通常被称为SSH服务器(SSH Server),它是一种可以在远程计算机上运行的软件,用于提供SSH协议的访问和管理功能。
SSH(Secure Shell)是一种安全的网络协议,它可以通过加密通信方式实现远程计算机与客户端之间的安全通信。基于SSH协议开发的远程管理服务程序,可以使用SSH协议连接到远程计算机,并提供以下功能:
1 远程登录:用户可以通过SSH协议连接到远程计算机,并执行命令或 *** 作远程计算机。这种连接方式可以保证通信过程中不被窃听或篡改。
2 文件传输:SSH服务器可以支持SCP(Secure Copy)或SFTP(SSH File Transfer Protocol)文件传输协议,用户可以使用这些协议将文件从本地计算机传输到远程计算机或从远程计算机下载文件到本地计算机。
3 用户管理:SSH服务器可以通过配置访问控制列表(ACL)限制用户访问权限,还可以限制用户对系统的 *** 作权限,并记录所有的用户登录和 *** 作日志。
4 系统管理:SSH服务器可以提供一些系统管理工具,例如远程终端程序、进程监控、系统日志查看等。
一些常见的基于SSH协议开发的远程管理服务程序包括OpenSSH、PuTTY SSH、Tectia SSH等。这些程序通常在Linux、Unix和Windows等平台上都可以运行。
1 ssh简介以及本例的应用场景
① ssh的简介
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
② 本例的应用场景
用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c:\testbat
注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。
2 ssh服务器的安装(Windows)
ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。
① 首先从官方站点下载软件并安装
② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态
③ 进入Users界面,设定一个访问的用户账户(比如xut)
这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
3 ssh客户端的设置(Linux)
由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。
我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair
Enter file in which to save the key (/root/ssh/id_rsa): [直接回车]
Enter passphrase (empty for no passphrase): [直接回车]
Enter same passphrase again: [直接回车]
Your identification has been saved in /root/ssh/id_rsa
Your public key has been saved in /root/ssh/id_rsapub
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/ssh/id_rsa为私有密钥,/root/ssh/id_rsapub为共有的密钥。
此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。
我们通过认证界面找到存放共有密钥的地址(Public key folder)。
如上图所示,然后在c:\Program Files\freeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/ssh/id_rsapub文件中的内容拷贝到c:\Program Files\freeSSHd\xut文件中。
至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。
ssh xut@17228xxxxx "c:\testbat"
这条命令将执行服务器端的C盘下的testbat文件,并把结果返回,整个 *** 作不需输入密码。
4 ssh客户端的设置(Windows)
由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。
PuttY主页:>
各种客户端的比较:>
在Putty主页,我们下载puttyzip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plinkexe的文件,这就是我们的ssh客户端命令行软件。
我们首先要成一个共有和私有的密钥对,使用puttyzip中附带的PUTTYGENexe生成。
启动PUTTYGENexe后可以见到下图界面,点击[Generate]即可生成所需密钥对。
注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。
鼠标在这里不停移动
密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_keyppk。
我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见ssh客户端的设置(Linux)。
在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。
plink -i pri_keyppk xut@17228xxxxx c:\testbat
(此时将执行服务器端的c:\testbat脚本。)
注:第一次连接时将出现“The server's host key is not cached in the registry… ”提示,我们选择确定就可以了,以后就不会再出现了。
使用SSH的优点:
1)利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题,也能够防止DNS欺骗和IP欺骗。
2)使用SSH传输的数据是经过压缩的,所以可以加快传输的速度 。
但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:
第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。
第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。
1在客户端(本地)生成密钥对
密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录,这里密钥锁码设置为空。完成上述步骤后,在 root 用户的家目录中生成了一个 ssh 的隐藏目录,内含两个密钥文件,其中id_rsa 为私钥,id_rsapub 为公钥。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)