Windows服务器上配置ssh和gfortran

Windows服务器上配置ssh和gfortran,第1张

一、安装Windows系统,注意进入界面时,不要选择或输入Microsoft账户,以免登录用户名存在问题。

二、安装配置OpenSSH服务器端,开启端口(一般默认已开启)设置默认shell,三步缺一不可。请参考官网步骤https://docsmicrosoftcom/en-us/windows-server/administration/openssh/openssh_server_configuration

三、安装MinGW64,配置环境变量

四、修改ssh config,参考https://blog51ctocom/rongfengliang/3124742

1、运行环境

WINDOWS下安装SSH客户端,名字是SSHSecureShellClient-329exe,可以到http://wwwsshcom/下载,当然了,在SERVER端我们也可以安装Openssh,但此文章着重介绍的是ssh的技术,所以我们使用的是http://wwwsshcom/ for UNIX/LINUX 的SERVER 端,现在最新版本是ssh-329-1i386rpm(如果你是AIX或者SOLARIS,要下不同的版本,这里以RHCE3为例子)。确定把UNIX类主机的默认的Openssh全部卸载掉后安装ssh-329-1i386rpm。

2、为什么要公私钥认证方法(连接到主机不输入密码)

我们需要知道Publick Key是指公钥,而private key是指私钥。认证的过程是这样的:public key对数据进行加密而且只能用于加密,private key只能对所匹配的public key加密过的数据进行解密。我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。此时,远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地,本地会用private key进行解密并把这个随机数发回给远程系统。最后,远程系统的sshd会得出结论——我们拥有匹配的private key允许我们登录。就这么简单!

3、在本机生成密钥过程

WINDOWS下寻找ssh-keygen2exe文件,这是生成密钥的文件,我的在C:/Program Files/SSH Communications Security/SSH Secure Shell,在DOS下执行这个文件,方法是

C:/Program Files/SSH Communications Security/SSH Secure Shell ssh-keygen2 -t rsa

我用的是rsa的密钥,默认是2048位,足够我们用的了,还可以使用dsa方式的密钥。我就不在这里说明了

系统自动生成密钥对,默认放在C:/Documents and Settings/XXX/Application Data/SSH/UserKeys目录下,其中XXX是你执行程序时用的帐户,默认名称是id_rsa_2048_a和id_rsa_2048_apub,而后者就是我们要传到服务器上的公钥。(生成密钥对的同时让你输入一个密码,因为我们想不输入密码直接登陆服务器,所以就直接回车了,但如果你想更安全一些,还是建议你在这里也输入密码。)

4、用SSH客户端从本机登陆到远程UNIX类服务器上

我们还按以前的方法登陆到远程UNIX类服务器上,这样登陆后我们会在用户目录下,PWD一下,你可以看到你的用户目录路径,比如我的就是/home/test,那么好了,我们建立一个ssh2的文件夹,在里面建立一个文件,authorization,内容如下:

key id_rsa_2048_apub

然后把你WINDOWS客户端上的id_rsa_2048_apub上传到你在UNIX类服务器上刚建立好的ssh2文件夹下,关闭SSH客户端。

5、用SSH客户端公钥认证状态登陆

重新启动SSH客户端,在登陆认证状态栏选择Public Key方式,登陆到你刚才放id_rsa_2048_apub的那台服务器,你会发现你马上就登陆进来了,没有密码限制了。这个时候用公私钥认证和用密码认证同时存在,还没有达到我们的要求,那我们就在UNIX类服务器上修改/etc/ssh2/sshd2_config文件

把以下如下三行的password 删除,下面这三行是修改好的

AllowedAuthentications publickey

AllowedAuthentications hostbased,publickey

RequiredAuthentications publickey

这样当你再用密码登陆的时候就出现如下对话框了!!

第二章 SSH客户端之Putty的连接方法

1、运行环境

WINDOWS下安装的SSH客户端,名字是putty-056-installerexe,可以到如下地址下载:

http://wwwchiarkgreenendorguk/~sgtatham/putty/downloadhtml,这个安装包是所有工具的集合,其实如果只做为连接用,你可以只下putty056exe的。但我们这里因为要做密钥对,所以就下整个包安装吧。

2、在本机生成密钥过程

用putty套装的puttygen来产生密钥。密钥的类型选择SSH2 RSA。密钥的位数选择2048,然后点击"Generator",此时密钥生成当然也有几个选项出现。如果你有不止一个key,你可以在“Key comment”作注释用于区别其他的key。“Key passphrase“和“Confirm passphrase“用于对硬盘上的key进行加密,如过你自己一个人用机器觉得安全有保障的话可以让它们为空。然后保存两个key,用默认方式保存,那么公钥你可以指定文件名,私钥默认的文件扩展名是ppk。在这里我们命名它为testppk,而公钥我们保存为testpub,需要注意的是,如果用putty连接,私钥的扩展名必须是ppk,而且你还可以将这个ppk的私钥保存为SSH Secure Shell 格式和Openssh格式认知的私钥,这个对两个UNIX类主机之间相互通信提供了很大帮助。(我们以后会将两个UNIX类主机通过公私钥认证的方法给大家讲讲)

4、用Putty从本机登陆到远程UNIX类服务器上

我们还按先前的方法登陆到远程UNIX类服务器上,这样登陆后我们会在用户目录下,PWD一下,你可以看到你的用户目录路径,比如我的就是/home/test,那么好了,我们建立一个ssh2的文件夹,在里面建立一个文件,authorization,内容如下:

key testpub

然后把你WINDOWS客户端上的testpub上传到你在UNIX类服务器上刚建立好的ssh2文件夹下,关闭Putty。这个上传命令你可以用 put ,下载就用get。你的通道可以用PSFTP建立,这个也在PUTTY的组件中。

5、用SSH客户端公钥认证状态登陆

重新启动Putty,建立一个session命名为test,设定你要登陆的远程ip,协议设为ssh,Connection设定在ssh的auth选项中,将private key的文件选择为刚才我们由puttygen产生的密钥testppk。点Open,要求输入username,我们输入用户名后远程系统开始public key认证,如果密钥有passphrase 则需要输入,否则直接就登录了。这个时候用公私钥认证和用密码认证同时存在,还没有达到我们的要求,那我们就在UNIX类服务器上修改/etc/ssh2/sshd2_config文件

把以下如下三行的password 删除,下面这三行是修改好的

AllowedAuthentications publickey

AllowedAuthentications hostbased,publickey

RequiredAuthentications publickey

这样当你再用密码登陆的时候就出现如下对话框了!!

第三章

Ssh服务器端安装

1、环境:

因为我们选用的SSH服务器是http://wwwsshcom 的SSH Secure Shell for unix类产品,所以我们主要介绍一下此类的Ssh服务器的安装过程。(SSH有两个版本,我们现在介绍的是版本2;Openssh就不介绍了,大家有兴趣的话可以参考一下网上文章)

2、编译安装

我们前面介绍过,现在的Ssh server for unix 类的最新版本是ssh-329-1,我建议大家用官方提供的TAR包,当然,如果你不熟悉编译过程,用RPM等安装方式也是可以的。如果用RPM安装,请先下载ssh-329-1i386rpm , 大家可以到以下地址下载:

http://ftpsshcom/priv/secureshell/329wks+srv-lt49ldrk/linux/ssh-329-1i386rpm

安装时请用管理员权限

# rpm –ivh ssh-329-1i386rpm 如果是升级安装那参数就用 –Uvh

而329-1的TAR包大家可以到http://downloadsplanetmirrorcom/pub/ssh/ssh-3291targz下载。安装时也使用管理员权限:

# tar xzvf ssh-3291targz

# cd ssh-3291

# /configure (这里我们要说明一下,原来有些文档写如果你希望用tcp_wrappers来控制SSH,那么在configure时需要加上选项“--with-libwrap=/path/to/libwrap/”, 用来告诉SSH关于libwrapa 和tcpdh的位置,但320以上的SSH已经不需要这么麻烦了,它们已经内置了控制访问权限的功能。)

# make ; make install ; make clean

这样就结束了安装。

3、简单配置Ssh server

无论你是用RPM或TAR包安装的ssh server,它的配置文件都在/etc/ssh2/sshd2_config,安装完后一般不用配置它,但如果你的22端口在安装ssh server之前已经被其他程序占用,那么你需要简单的配置一下这个文件,执行 vi /etc/ssh2/sshd2_config,找到第27行,Port 22 ,把22改成其他的端口就可以了。

4、启动Ssh server

Ssh server 的默认启动文件是/usr/local/sbin/sshd2,而安装程序自动做了一个连接到这个文件的名字为sshd的文件,我们只要在/usr/local/sbin/目录中执行 /sshd 就可以简单的启用Ssh server,然后我们执行 # netstat –na 会看见22端口已经被监听了(你的可能是其他端口,具体看你在sshd2_config文件中的设置了。)但我们不想每次都要手动启动Ssh server,那么我们可以修改一下/etc/rcd/rclocal文件,在这个文件的最后加入以下内容:

#start ssh

/usr/local/sbin/sshd

其中第一行为注释内容,第二行为启动SSH服务器并作为后台守护进程运行。

这样就好了,系统重起时可以自动启动SSH服务,但是启动后你如果在服务器端插上显示器,会在最后该登陆的时候看到一行字,意思就是Ssh server 服务启动了,我比较挑剔,不想看到这个提示,而且我想把Ssh服务放到LINUX服务启动过程中,这样比较美观一点。那么我们就不能修改/etc/rcd/rclocal文件,我们要进入/etc/initd/中建立一个SHELL文件,名字就叫sshd 内容如下:

#!/bin/bash

cd /usr/local/sbin

/sshd

然后给这个文件加上可执行权限

# chmod +x sshd

然后进入/etc/rc3d,做一个软链接文件

# cd /etc/rc3d

# ln -s /initd/sshd S13sshd

这样就达到了我的要求,好了,Ssh server的安装就介绍到这里吧,安装是很简单的,希望大家编译安装成功。

        1、什么是SSH

             SSH是专门为了远程登录会话和其他网络服务提供的安全性协议,使用SSH协议可以有效的防止远程连接会话的时候出现信息泄密,在数据传输的时候SSH会先对联机的数据包通过加密技术进行加密处理,加密后在进行数据的传输,确保了传输中的安全性,SSH服务主要提供两个服务功能:一个是远程联机的SSH服务,一个是借助SSH协议来传输数据的SFTP服务

        2、SSH原理阐述

              ① 服务端开启ssh服务监听22端口

   ② 客户端发送联机请求(携带IP和端口)

   ③ 客户端服务端进行联机加密认证

   ④ 认证通过联机成功

        3、SSH的两种认证方式

              ① 基于密码口令的认证

   ② 基于秘钥的安全认证

        4、SSH认证类型阐述

              基于密码口令的方式:

     基于密码的安全认证就是我们一直在用的,只要知道服务器的SSH连接账号和密码(当然也要知道服务器的IP和端口(默认22)),就可以通过客户端远程登录到主机了,所以的传输过程都是加密的

   基于秘钥的安全认证:

     ① 运行SSH服务,生成密钥对

     ② 客户端发送公钥到服务端(通过ssh-copy-id或者其他的方式)

     ③ 客户端发送连接请求

                      ④ 服务端进行对密钥的验证

     ⑤ 验证成功服务端将用公钥加密质询,发送给客户端

     ⑥ 客户端用自己的私钥解密质询

     ⑦ 客户端将解密后的质询发送给服务端

     ⑧ 服务端验证质询

     ⑨ 验证通过,建立连接

        5、SSH联机加密过程原理阐述

补充:SSH2版本中为了修补SSH1中不验证整合秘钥对的漏洞,加入了一个确认联机正确性的Diffie-Hellman机制(每次联机都会进行秘钥对的校验)

          1、expect

          2、sshpass

          3、pssh

         ① SSH是安全加密协议,用于远程连接linux服务器

   ② SSH默认端口是22,安全协议版本是SSH2,除了SSH2还有SSH1,但是1有漏洞

   ③ SSH服务端只要包含两个服务,一个是SSH一个是SFTP

   ④ Linux SSH 客户端包含ssh远程连接命令,以及远程scp命令等

   ⑤ SSH配置文件的优化很重要,可以提高服务器的安全性,也可以提高远程连接的速度

windows10(其它版本请自行百度)

一、win10 安装spenssh

1、服务端切换到C:\ProgramData\ssh\下(首次启动sshd后会生成该文件夹),打开sshd_config文件

2、修改 sshd_config 配置文件参数

3、重启ssh-server服务

三、服务端设置完成, 设置客户端链接

1、客户端生成ssh密钥文件:

注: -d 4096 是设置加密位数(可不要); -t 任意字符 必须设置

2、需要将客户端(celient)生成的 id_rsapub 文件密钥, 追加 到服务端的 authorized_keys 文件中,[authorized_keys 文件路径: windows系统在 C:\Users\Administratorssh 目录下,没有可新建]

四、测试ssh免密链接, 首次需要输入密码

SSH(Secure Shell)是常用的安全的远程控制协议,由于之前常用Telnet协议并不安全,目前SSH已经取代它成为远程控制协议中的主流。

OpenSSH是应用SSH协议的开源远程控制软件,除了默认的用户名+密码认证验证方式以外,OpenSSH还可以使用基于秘钥对(key pair)或者基于主机身份(Host-based)的验证方式。

关于如何基于秘钥对进行SSH身份验证网上有非常多的资料,而关于如何基于主机身份进行SSH身份验证的资料则比较混乱,本文就以作者最近的实践为例加以说明。

这次实验共有2台Linux,客户端主机名是mycentos,IP地址是192168125;服务器端主机名是woocentos7,IP地址是19216816。

服务器端和客户端都要修改SSH配置文件以支持主机身份验证,服务器端需要修改/etc/ssh/sshd_config文件,将HostbasedAuthentication项改为yes,IgnoreRhosts项改为no;客户端需要修改/etc/ssh/ssh_config文件,将HostbasedAuthentication项改为yes,EnableSSHKeysign项改为yes。服务器端修改配置文件以后,需要重启sshd服务使修改后的配置生效,命令是systemctl restart sshd。

服务器端还需要在/etc/hostsequiv配置文件中增加客户端的主机名,在root用户的~/shosts文件中增加客户端的主机名与对应的用户名(root,两项之间用空格隔开),在/etc/ssh/ssh_known_hosts文件中增加客户端的主机公钥信息,格式如下:

mycentos,192168125 ecdsa-sha2-nistp256 AAAAE2VjZ……KO8WzOJo=

其中“mycentos,192168125”是客户端的主机名和IP地址(这样不论是通过主机名还是IP地址都可以找到对应的公钥信息),“ecdsa-sha2-nistp256”是公钥类型,“AAAAE2VjZ……KO8WzOJo=”是具体的公钥内容。可以通过执行ssh-keyscan -t ecdsa 192168125 >>/etc/ssh/ssh_known_hosts命令完成操作。

做完以上的操作,理论上客户端就可以通过验证主机身份的方式用ssh登录服务器端了,不过仍需注意几点:

1、服务器端最好关闭SELinux,如setenforce 0以免影响正常登录,关闭SELinux后如果客户端仍然无法登录,可以重启服务器端sshd服务。注意:不关闭SELinux应该也是可以实现主机认证的功能的,但是因为时间关系,作者并没有再尝试。

2、服务器端和客户端的/etc/hosts文件中应该有对端的主机IP地址解析,以免提示解析错误。

3、服务器端和客户端的用户配置要保持一致。

4、客户端登录时不用添加用户名,使用其他用户登录(非当前Shell用户)时依然会提示输入密码,也就失去了主机认证的意义。

5、客户端登录时可执行ssh -v server_name|server_IP或者ssh -vvvvv server_name|server_IP命令,能够显示登录过程中的详细协商过程和传递参数,对于出现异常时排错非常有用。

SSH是Secure Shell Protocol的简写。在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。

SSH是专为远程登陆会话和其他网络服务提供的安全性协议。利用SSH协议可以有效的防止远程管理过程中的信息泄漏问题。

在默认状态下,SSH服务主要提供两个服务功能;一个是提供类似telnet远程联机服务器的服务,即上面提到的SSH服务:另一个类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务 提醒SSH客户端(ssh命令)还包含一个很有用的远程安全拷贝命令scp,也是通过ssh协议工作的

小结:

1)SSH是安全的加密协议,用于远程连接Linux服务器。

2)SSH默认的端口是22,安全协议版本是SSH2,除了2还有ssh1有漏洞

3)SSH服务器端主要包含两个服务器功能SSH远程连接,SFTP服务。

4)Linux SSH客户端包含ssh远程连接命令,以及远程拷贝scp命令等。

修改SSH服务的运行参数,是通过修改配置文件/etc /ssh/sshd_config实现的。

Port 52114 (ssh默认连接端口是22 修改他)

PermitRootLogin no(禁止远程root登陆)

PermitEmptyPasswords no(禁止空密码的登陆)

UseDNS no(不适用DNS)

ListenAddress 17216161:22 (只监听内网IP 可以加端口号)

在远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是‍以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。下面列出来的是两个配置文件中最重要的一些关键词,每一行为“关键词&值”的形式,其中“关键词”是忽略大小写的。

‍‍1、编辑 /etc/ssh/ssh_config 文件

Site-wide defaults for various options

Host

ForwardAgent no

ForwardX11 no

RhostsAuthentication no

RhostsRSAAuthentication no

‍ RSAAuthentication yes

PasswordAuthentication yes

FallBackToRsh no

UseRsh no

BatchMode no

CheckHostIP yes

StrictHostKeyChecking no

IdentityFile ~/ssh/identity

Port 22

Cipher blowfish

EscapeChar ~

下面对上述选项参数逐进行解释:

Site-wide defaults for various options

带“#”表示该句为注释不起作,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有“#”注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置。

Host

"Host"只对匹配后面字串的计算机有效,“ ”表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换 号使下面选项只针对该算机器生效。

ForwardAgent no

"ForwardAgent"设置连接是否经过验证代理(如果存在)转发给远程计算机。

ForwardX11 no

"ForwardX11"设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。

RhostsAuthentication no

"RhostsAuthentication"设置是否使用基于rhosts的安全验证。

RhostsRSAAuthentication no

"RhostsRSAAuthentication"设置是否使用用RSA算法的基于rhosts的安全验证。

RSAAuthentication yes

"RSAAuthentication"设置是否使用RSA算法进行安全验证。

PasswordAuthentication yes

"PasswordAuthentication"设置是否使用口令验证。

FallBackToRsh no

"FallBackToRsh"设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所以此选项应当设置为"no"。

UseRsh no

"UseRsh"设置是否在这台计算机上使用"rlogin/rsh",原因同上,设为"no"。

BatchMode no

"BatchMode":批处理模式,一般设为"no";如果设为"yes",交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。

CheckHostIP yes

"CheckHostIP"设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为"yes"。

StrictHostKeyChecking no

"StrictHostKeyChecking"如果设为"yes",ssh将不会自动把计算机的密匙加入"$HOME/ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。

IdentityFile ~/ssh/identity

"IdentityFile"设置读取用户的RSA安全验证标识。

Port 22

"Port"设置连接到远程主机的端口,ssh默认端口为22。

Cipher blowfish

“Cipher”设置加密用的密钥,blowfish可以自己随意设置。

EscapeChar ~

“EscapeChar”设置escape字符。

2、编辑 /etc/ssh/sshd_config 文件:‍

This is ssh server systemwide configuration file

Port 22

ListenAddress 19216811

HostKey /etc/ssh/ssh_host_key

ServerKeyBits 1024

LoginGraceTime 600

KeyRegenerationInterval 3600

PermitRootLogin no

IgnoreRhosts yes

IgnoreUserKnownHosts yes

StrictModes yes

X11Forwarding no

PrintMotd yes

SyslogFacility AUTH

LogLevel INFO

RhostsAuthentication no

RhostsRSAAuthentication no

RSAAuthentication yes

PasswordAuthentication yes

PermitEmptyPasswords no

AllowUsers admin

‍下面逐行说明上面的选项设置:

Port 22

"Port"设置sshd监听的端口号。

ListenAddress 19216811

"ListenAddress”设置sshd服务器绑定的IP地址。

HostKey /etc/ssh/ssh_host_key

"HostKey”设置包含计算机私人密匙的文件。

ServerKeyBits 1024

"ServerKeyBits”定义服务器密匙的位数。

LoginGraceTime 600

"LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。

KeyRegenerationInterval 3600

"KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。

PermitRootLogin no

"PermitRootLogin”设置是否允许root通过ssh登录。这个选项从安全角度来讲应设成"no"。

IgnoreRhosts yes

"IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。

IgnoreUserKnownHosts yes

"IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的"$HOME/ssh/known_hosts”

StrictModes yes

"StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。

X11Forwarding no

"X11Forwarding”设置是否允许X11转发。

PrintMotd yes

"PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。

SyslogFacility AUTH

"SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。

LogLevel INFO

"LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。

RhostsAuthentication no

"RhostsAuthentication”设置只用rhosts或“/etc/hostsequiv”进行安全验证是否已经足够了。

RhostsRSAAuthentication no

"RhostsRSA”设置是否允许用rhosts或“/etc/hostsequiv”加上RSA进行安全验证。

RSAAuthentication yes

"RSAAuthentication”设置是否允许只有RSA安全验证。

PasswordAuthentication yes

"PasswordAuthentication”设置是否允许口令验证。

PermitEmptyPasswords no

"PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。

AllowUsers admin

"AllowUsers”的后面可以跟任意的数量的用户名的匹配串,这些字符串用空格隔开。主机名可以是域名或IP地址。

通常情况下我们在连接 OpenSSH服务器的时候假如 UseDNS选项是打开的话,服务器会先根据客户端的 IP地址进行 DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始 IP地址一致,通过此种措施来防止客户端欺骗。平时我们都是动态 IP不会有PTR记录,所以打开此选项也没有太多作用。我们可以通过关闭此功能来提高连接 OpenSSH 服务器的速度。

1)执行命令生成私钥和公钥 ssh-keygen -t dsa 如图:

3)我们切换过去就不需要密码了 如图

SSH全称是SecureShell,SSH是创建在应用层和传输层基础上的安全协议,采用端口为22,下面我来讲解一下如何使用putty工具来连接服务器:

工具/原料

putty

开有ssh服务的服务器

连接服务器

1、下载putty软件,网络搜索这个软件有很多下载的,当然也不一定是这款,也可以用其他同类软件连接:

2、打开软件之后,输入你连接服务器的ip地址,勾选ssh,端口22:

3、点击确定后,输入帐号和密码(密码不可见,只需要输入即可);完成后回车,看看有没有成功连接上;如果可以连接上,就可以执行命令了;如果连接不上,请检查是否密码错误或者服务器配置问题:

本文最初发表于 我的个人站点

更详细的解释可以参考 SSH

简单来理解,就是我拥有一台服务器,我现在想要登录上去做一些事情,那就得使用ssh登录到远程的服务器上,才能在上面进行操作。

一开始在远程服务器上面,需要查看一下他的sshd服务启动了没有,如果没有启动,任何客户端主机是连接不上来的,一般如果是自己在云厂商处购买了主机,主机启动的时候就会把sshd服务启动起来。但有可能自己在测试环境搭建机器的时候,是没有默认启动的,这时候就需要在测试机器的终端看一下,命令如下

如果没有启动的话,那就启动一下,命令如下

这里我在测试环境机器的ip是 1921680187, 我在自己的电脑上想要登录这台机器,我要做的就是使用ssh命令去登录1921680187这台主机

我需要告诉1921680187这台主机我以谁的身份去登录, 1921680187会询问密码,命令如下

敲入正确的密码之后,我们就已经成功登录了主机了

这里看到让我输入一个文件名字来保存密匙,我这里示例就输入一个"foxchao"

回车以后,询问是否要输入一个密码来保护这个密匙,为了方便起见,我就不输入了,不然每次使用这个密匙文件还要输一遍密码,直接一路回车就ok,如下所示

到了这里,可以看到我们已经创建好了密匙对

现在我们新建了自己的密匙对之后,把foxchaopub这个文件放到目标的机器上,加入目标机器的 authorized_keys 中就可以了,以后登录的时候就可以免去输入密码的步骤。

那我们先用scp放上去 ,关于scp命令,这里不过多介绍,就是传文件的一个命令,使用也比较简单,具体想了解可以看这里 Linux scp命令

这里表示我要把foxchaopub这个文件拷贝到1921680187这台机器root用户的用户目录下

回车之后会询问密码,输入密码确认之后,文件就传上去了,如下

这时候我们先用密码登上去看看传上去没有

可以看到foxchaopub这个文件已经传上来了

目标主机上如果没有ssh文件夹,就自己创建一个,创建好之后,再创建一个authorized_keys文件。如果有的话就不用了。

把刚才的foxchaopub这个文件内容写进authorized_keys

看一下,已经有内容了

这里需要注意

authorized_keys 文件对权限有哟求,必须是600(-rw——-)或者644

ssh目录 必须是700(drwx——),否则一会儿登录不成功

弄完之后检查一下权限,如果不是的话,改成响应的权限就ok了

在登录之前,要确认一下目标主机是否允许密匙对登录,一般都是打开的,如果没有打开就自己打开

(查看 /etc/ssh/sshd_config 文件内容 中的 PubkeyAuthentication 这一项是否为 yes,如果不是就自己修改成yes之后重启sshd服务 )

为了避免繁琐的每次都敲一长串 user@host 这样的命令, 可以自己在ssh 目录下建一个config文件,文件内容如下,想要多了解一下配置参数使用的,可以看 linux ssh_config和sshd_config配置文件

文件建立好之后,直接使用自己定义的别名登录,非常方便快捷

如果是自己局域网搭建的机器,倒不用在意服务器的安全问题,但如果是暴露在公网上的机器,可以通过公网ip登录的,一定要注意自己服务器的安全问题,最起码不能开放默认端口,以及密码登录

在服务器上查看一下登录的日志,可以看到很多想要尝试登陆机器的人,所以公网上面的机器一定要做好自我保护

这里只列出一小部分的日志

统计一下,可以看到有29190次登录失败的记录

我们改掉默认的端口,以及禁用密码登录,只支持密匙对登录,这样一来,提高了服务器本身的安全性,至少没那么容易被别人登录上来为所欲为。

在服务器上修改sshd的配置文件

保存之后,重启sshd服务

使用自己定义的端口登录

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Windows服务器上配置ssh和gfortran

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情