OpenSSH配置

合集下载

openssh配置

openssh配置

Openssh配置
配置openssh服务器
实现功能:
1、实现本地用户登陆
2、使用rsa认证,登陆系统不许密码
3、禁止root用户直接登陆系统。

4、更改ssh监听端口为222
1、OPENSSH的简介
•OPENSSH优点
加密方式传输
传输数据经过压缩,可加快传输速
可实现远程控制、数据传输(拷贝及FTP方式)
2、安装openssh、openssh-clients、openssh-server软件包,所有的都在第一张光盘,查看是否安装好了这些软件包
/etc/ssh/sshd_config
3、编辑主配置文件#vi
#service sshd restart
redhat
4、对端口222与root用户登录进测试,新建一个普通用户
◆那么改了之后,22端口就不能连接了,只有使用222端口
◆由于之前的修改了PermitRootLogin no,所以root不能登录的
5、RSA 认证协议的基础是一对专门生成的密钥,分别叫做专用密钥和公用密钥。

实现在许多情况下,有可能不必手工输入密码就能建立起安全的连接。

#vi
/etc/ssh/sshd_config
#service sshd
restart
#ssh-keygen –t
总结:本来进行rsa认证是要两台机的,一台服务器,另一台做客户机。

也可以用不同的普通户进行测试。

图解--Win10OpenSSH

图解--Win10OpenSSH

图解--Win10OpenSSH⼀、安装OpenSSH 客户端、OpenSSH 服务器设置 -> 管理可选功能 -> 添加功能 -> [OpenSSH 客户端] [OpenSSH 服务器]1、设置2、管理可选功能3、添加功能:OpenSSH 客户端 OpenSSH 服务器⼆、启动服务并设置为⾃动启动SSH服务 -> 启动 SSH服务 -> 属性 -> 启动选择 -> ⾃动1、查看 SSH服务2、服务启动并设置⾃动启动【OpenSSH Authentication Agent】 / 【OpenSSH SSH Server】 ==》右击 ==》启动【OpenSSH Authentication Agent】 / 【OpenSSH SSH Server】 ==》右击 ==》属性 ==》启动类型:⾃动三、验证SSH1、C:\Windows\System32\OpenSSH安装的SSH程序都在这了,客户端的,服务端的都在这。

2、powershell : ssh命令四、密码⽅式远程 — Windows、Linux 服务器ssh 主机地址 -p 端⼝号1、使⽤密码连接Linux服务器(这⾥远程的是阿⾥云的⼀台Linux服务器)伪代码:ssh Rlzhroupt_root@114.112.119.110 -p 99982、密码连接 windows 服务器 密码前密码后六、密钥⽅式远程 —Linux、 Windows 服务器1、客户机通过 ssh-keygen ⽣成密钥对,⼀路enter。

ssh-keygen2、服务器添加公钥新建 authorized_keys.txt ⽂本⽂件,将客户端⽣成的公钥 id_rsa.pub 复制进去。

然后重命名去除.txt⽂件后缀。

3、服务端重启 OpenSSH Server 服务。

openssh

openssh

openssh1. 使⽤ SSH 访问远程命令⾏1.1 OpenSSH 简介OpenSSH 是 SSH(Secure Shell)协议的免费开源实现。

SSH协议族可以⽤来进⾏远程控制,或在计算机之间传送⽂件。

⽽实现此功能的传统⽅式,如telnet(终端访真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使⽤明⽂传送密码。

OpenSSH提供了服务端后台程序和客户端⼯具,⽤来加密远程控制和⽂件传输过程中的数据,并由此来代替原来的类似服务。

OpenSSH这⼀术语指系统中使⽤的Secure Shell软件的软件实施。

⽤于在远程系统上安全运⾏shell。

如果您在可提供ssh服务的远程Linux系统中拥有⽤户帐户,则ssh是通常⽤来远程登录到该系统的命令。

ssh命令也可⽤于在远程系统中运⾏命令。

常见的远程登录⼯具有:telnet(teletype network):基于TCP协议,端⼝号为23;Telnet提供远程登录功能,使得⽤户在本地主机上运⾏Telnet客户端,就可登录到远端的Telnet服务器. 在本地输⼊的命令可以在服务器上运⾏,服务器把结果返回到本地,如同直接在服务器控制台上操作. 这样就可以在本地远程操作和控制服务器;Telnet将⽤户的所有内容,包括⽤户名和密码都明⽂在互联⽹上传送,具有安全隐患,⼀般⽤于测试某个端⼝是不是通的。

ssh( Secure Shell):SSH 为建⽴在应⽤层基础上的安全协议。

SSH 是⽬前较可靠,专为远程登录会话和其他⽹络服务提供安全性的协议。

利⽤ SSH 协议可以有效防⽌远程管理过程中的信息泄露问题。

dropbear:嵌⼊式系统专⽤的SSH服务器端和客户端⼯具1.2 SSH 版本openssh有两个版本,分别为v1和v2,其特点如下:v1:基于CRC-32做MAC,⽆法防范中间⼈(man-in-middle)攻击——有漏洞,容易受到攻击。

OpenSSH配置

OpenSSH配置

SSH是英文Secure Shell的简写形式。

通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人“这种攻击方式就不可能实现了,而且也能够防止DNS 欺骗和IP欺骗。

使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的“通道“。

最初的SSH是由芬兰的一家公司开发的。

但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。

OpenSSH是SSH的替代软件包,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:和。

用SSH 的客户程序是不能连接到SSH 的服务程序上去的。

OpenSSH 同时支持SSH 和。

SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议,它主要由以下三部分组成,共同实现SSH的安全保密机制。

传输层协议,它提供诸如认证、信任和完整性检验等安全措施,此外它还可以任意地提供数据压缩功能。

通常情况下,这些传输层协议都建立在面向连接的TCP 数据流之上。

用户认证协议层,用来实现服务器的跟客户端用户之间的身份认证,它运行在传输层协议之上。

连接协议层,分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议之上。

当安全的传输层连接建立之后,客户端将发送一个服务请求。

当用户认证层连接建立之后将发送第二个服务请求。

这就允许新定义的协议可以和以前的协议共存。

连接协议提供可用作多种目的通道,为设置安全交互Shell会话和传输任意的TCP/IP端口和X11连接提供标准方法。

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

第一种级别(基于口令的安全验证),只要你知道自己的帐号和口令,就可以登录到远程主机,并且所有传输的数据都会被加密。

但是,这种验证方式不能保证你正在连接的服务器就是你想连接的服务器。

openSSH的配置

openSSH的配置

一直想不下linux技术,一直没有时间弄,最近由于工作上的需要,需要熟悉linux系统,借此机会好好学习一下首是是最其本的,安装openssh-server,方便远程访问,使用Putty可以访问ubuntuPuTTY 是一套免费的SSH / T elnet 程序,它可以连接上支持SSH Telnet 联机的站台,并且可自动取得对方的系统指纹码(Fingerprint)。

建立联机以后,所有的通讯内容都是以加密的方式传输,因此你再也不用害怕使用Telnet 在Internet 或公司的内部网络传输资料时被他人获知内容了!经过多方查找资料,终于明白安装过程了,具体如下:第一步:Ubuntu 电脑上需要安装openssh-server :sudo apt-get install openssh-server由于默认Ubuntu采用UTF-8的字符集,所以putty需要做一些设置:点击左边的Windows -> Appearance 设置Font settings ,点击Change... 按钮选择为仿宋体或者新宋体.点击左边的Windows -> Translation 设置Character set translation 为UTF-8然后,点击Open 连接服务器即可第二步:安装的时候,可能不能成功安装openssh-server,报以下错误现在没有可用的软件包openssh-server,但是它被其它的软件包引用了.这可能意味着这个缺失的软件包可能已被废弃,或者只能在劳动保险发布源中找到.E:软件包openssh-server还没有可供安装的候选者解决办法:当前的源类表中没有你要安装的软件包,修改/etc/apt/sources.list 添加源列表,添加以下源# 欧洲,此为官方源,推荐使用,PING=500deb /ubuntu/ feisty main restricted universe multiversedeb /ubuntu/ feisty-security main restricted universe multiverse deb /ubuntu/ feisty-updates main restricted universe multiverse deb /ubuntu/ feisty-proposed main restricted universe multiverse deb /ubuntu/feisty-backports main restricted universe multiversedeb-src /ubuntu/ feisty main restricted universe multiversedeb-src /ubuntu/feisty-security main restricted universe multiversedeb-src /ubuntu/feisty-updates main restricted universe multiversedeb-src /ubuntu/feisty-proposed main restricted universe multiversedeb-src /ubuntu/feisty-backports main restricted universe multiversedeb /ubuntu-cn/ feisty main restricted universe multiverse# 中国台湾省台湾大学,推荐网通用户使用,电信PING平均响应速度41MS,PING=100 deb .tw/ubuntu/ feisty main restricted universe multiversedeb-src .tw/ubuntu/ feisty main restricted universe multiverse deb .tw/ubuntu/feisty-updates main restricted universe multiversedeb-src .tw/ubuntu/feisty-updates main restricted universe multiversedeb .tw/ubuntu/feisty-backports main restricted universe multiversedeb-src .tw/ubuntu/feisty-backports main restricted universe multiversedeb .tw/ubuntu/feisty-security main restricted universe multiversedeb-src .tw/ubuntu/feisty-security main restricted universe multiversedeb .tw/ubuntu/feisty-proposed main multiverse restricted universedeb-src .tw/ubuntu/feisty-proposed main restricted universe multiverseVI有三种模式:命令模式、插入模式、末行模式,它们的功能如下:(1)命令模式:当执行VI后,首先会进入指令模式,此时输入的任何字符都被视为指令。

Openssh安装配置

Openssh安装配置

1.Openssh概念OpenSSH 是SSH(Secure SHell)协议的免费开源实现。

SSH协议族可以用来进行远程控制,或在计算机之间传送文件。

而实现此功能的传统方式,如telnet(终端仿真协议)、rcp ftp、rlogin、rsh都是极为不安全的,并且会使用明文传送密码。

OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

2.使用ftp演示不安全性1.启动ftp服务Service vsftpd restart2.启动后查看21端口是否处于监听状态Netstat -tnl3.执行操作,如添加用户等Useradd xiaomingPasswd xiaoming输入密码4.使用tcpdump(抓包命令)查看刚才的操作信息tcpdump -i etho -nnX port 215.在windows中使用ftp hostName 连接刚才创建的用户6.查看抓到的包信息以上说明ftp协议是不安全的。

3.Openssh简介1.SSH端口:222.Linux中守护进程:sshd3.安装服务:OpenSSH4.服务端主程序:/usr/sbin/sshd5.客户端主程序:/usr/bin/ssh6.服务端配置文件:/etc/ssh/sshd_config7.客户端配置文件:/etc/ssh/ssh_config4.SSH加密原理SSH之所以能够保证安全,原因在于它采用了公钥加密。

整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。

因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。

OPENSSH详解

OPENSSH详解

OPENSSH详解OPENSSH 详解⼀、什么是OpensshOpenSSH 是 SSH (Secure SHell)协议的免费开源实现。

SSH协议族可以⽤来进⾏远程控制,或在计算机之间传送⽂件。

⽽实现此功能的传统⽅式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使⽤明⽂传送密码。

OpenSSH提供了服务端后台程序和客户端⼯具,⽤来加密远程控件和⽂件传输过程中的数据,并由此来代替原来的类似服务。

知识延伸:ssh协议有两个版本:v1:基于CRC-32 做MAC,不安全;(⼀般⽤于实现主机认证)v2:基于协议协商选择双⽅都⽀持的最安全的MAC机制基于DH做密钥交换,基于RSA或DSA实现⾝份认证,从⽽实现⽆需输⼊账号⾯膜客户端通过检查服务器端的主机秘钥来判断是否能够继续通信;认证⽅式:1、基于⼝令的认证2、基于密钥的认证⼆、为什么要使⽤OpenSSH由于传统的telnet、rcp ftp等⼯具是明⽂传输数据的,对数据安全性存在很⼤的安全隐患,⽽OpenSSH可以对传输的数据进⾏加密从⽽⼤⼤提⾼了数据的安全性。

三、OpenSSH程序简介1、OpenSSH的分为客户端和服务端两部分Clients端的配置⽂件:/etc/ssh/ssh_configServer端的配置⽂件:/etc/ssh/sshd_configServer端服务脚本:/etc/rc.d/init.d/sshdOpenSSH在Linux系统中默认是安装并启动的openssh 主要的关键包有四个openssh.x86_64 5.3p1-104.el6 //服务端和客户端的公共组件openssh-askpass.x86_64 5.3p1-104.el6 //openssh-clients.x86_64 5.3p1-104.el6 //客户端安装包openssh-server.x86_64 5.3p1-104.el6 //服务端安装包openssl-clients ⼏个常⽤⽂件[root@1inux ssh]# rpm -ql openssh-clients/etc/ssh/ssh_config //客户端配置⽂件/usr/bin/scp //远程复制⽂件/usr/bin/sftp //远程⽂件共享/usr/bin/slogin/usr/bin/ssh/usr/bin/ssh-add/usr/bin/ssh-agent/usr/bin/ssh-copy-id/usr/bin/ssh-keyscanopenssl-server ⼏个常⽤⽂件/etc/rc.d/init.d/sshd/etc/ssh/sshd_config/etc/sysconfig/sshd2、服务器端配置⽂件/etc/ssh/sshd_config 主要参数详解服务端配置⽂件是让别⼈登陆时使⽤的注:配置⽂件中使⽤“#”注释掉的⼀般就是使⽤默认#Port 22 //默认端⼝号,为了其安全⼀般要更改为其他端⼝#AddressFamily any //说明要监听任意地址#ListenAddress 0.0.0.0 //监听本机所有IPV4的ip#ListenAddress :: //监听本机所有的IPV6的地址Protocol 2 监听的协议版本# HostKey for protocol version 1 //说明key的协议版本SyslogFacility AUTHPRIV //使⽤AUTHPRIV 记录⽇志#LogLevel INFO //log⽇志级别#Authentication: //认证相关#LoginGraceTime 2m //登陆宽限时长默认2分钟不登录⾃动关闭#PermitRootLogin yes //是否⽀持管理员直接登陆#StrictModes yes //是否使⽤严格模式(严格检查⽤户的某些相关信息)#MaxAuthTries 6 //最⼤尝试次数(6次以后终端断开)#MaxSessions 10 //最⼤并发允许链接数(超过将拒绝)#RSAAuthentication yes //是否⽀持RSA密钥认证#PubkeyAuthentication yes //是否⽀持公钥认证#AuthorizedKeysFile .ssh/authorized_keys //默认保存⼝令的⽂件#PermitEmptyPasswords no //是否⽀持空密码登陆PasswordAuthentication yesUsePAM yes //是否使⽤PAM 认证(是⼀种统⼀认证框架)X11Forwarding yes //是否转发图形界⾯请求 (可以打开远程服务器图形界⾯)Subsystem sftp /usr/libexec/openssh/sftp-server#UseDNS yes //是否允许DNS反解⽐较浪费时间⼀般更改为no/etc/ssh/ssh_known_hosts //保存已经认可主机的⽂件3、客户端配置⽂件/etc/ssh/ssh_config 主要参数详解客户端配置⽂件时登陆别⼈的ssh使⽤的#Host * //表⽰连接所有主机#Port 22 //默认连接端⼝#Cipher 3des //加密时使⽤的加密机制#StrictHostKeyChecking ask //严格的主机秘钥检查即第⼀次连接时是否询问四、客户端ssh的使⽤1、ssh的基本语法ssh [OPTIONS] [user]@server [COMMAND]-l user: 以指定⽤户⾝份连接⾄服务器;默认使⽤本地⽤户为远程登录时的⽤户; ssh user@serverssh -l user server[root@1inux ~]# ssh centos@172.16.66.81The authenticity of host '172.16.66.81 (172.16.66.81)' can't be established.RSA key fingerprint is d6:3b:33:71:32:69:7a:dd:47:c2:49:03:ec:03:a1:5e.Are you sure you want to continue connecting (yes/no)?[root@1inux ~]# ssh -l centos 172.16.66.81The authenticity of host '172.16.66.81 (172.16.66.81)' can't be established.RSA key fingerprint is d6:3b:33:71:32:69:7a:dd:47:c2:49:03:ec:03:a1:5e.Are you sure you want to continue connecting (yes/no)?-p PORT:指明要连接的端⼝:[root@1inux ~]# ssh -p 22 -l centos 172.16.66.81The authenticity of host '172.16.66.81 (172.16.66.81)' can't be established.RSA key fingerprint is d6:3b:33:71:32:69:7a:dd:47:c2:49:03:ec:03:a1:5e.Are you sure you want to continue connecting (yes/no)?-X :启⽤X11Forwarding,即转发X界⾯的请求;-x:禁⽤;-Y: 启⽤信任的X11Forwarding2、ssh 基于秘钥的认证2.1、ssh-keygen语法:ssh-keygen [OPTIONS]-t {rsa|dsa} 密钥类型⼀般使⽤rsa-b # 指明密钥长度-f /PATH/TO/OUTPUT_KEYFILE 指明密钥⽂件-P '' :指明加密密钥的密码,表⽰使⽤空密码[root@1inux ~]# ssh-keygen -t rsa //⽣成密钥对Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_90 //定义保存的密钥⽂件名Enter passphrase (empty for no passphrase): //要求对⽣成的密钥对加密,也可以不加密输⼊两次回车就OKEnter same passphrase again:Your identification has been saved in /root/.ssh/id_90. //说明已经⽣成密钥Your public key has been saved in /root/.ssh/id_90.pub. //说明已经⽣成公钥The key fingerprint is:7a:17:b3:e7:6f:54:a1:30:23:62:7c:04:37:10:52:08 root@1inuxThe key's randomart image is:+--[ RSA 2048]----+| E..+==+ || ..+.o.+ . || . o . + . .|| . .|| S o . || . + . || . . o .. || . . o . || .o. |+-----------------+[root@1inux ~]#[root@1inux ~]# ls .ssh/id_90 id_90.pub known_hosts[root@1inux ~]#-------------------------也可以指明秘钥路径及密码[root@1inux .ssh]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -P '' //经测试名字必须为id_rsaGenerating public/private rsa key pair.Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:33:c3:f8:f3:2c:ed:88:cc:db:7a:97:5f:d0:de:ce:d9 root@1inuxThe key's randomart image is:+--[ RSA 2048]----+| || || || o . || . S . . || . + o . || o. . o .|| o oo=+ . oo|| *+o++.. .E|+-----------------+[root@1inux ~]# ls .ssh/id_rsa id_rsa.pub id_www id_www.pub known_hosts2.2、把公钥部分复制到要登陆远程主机的特定⽤户(可不同于本地⽤户)的家⽬录下,追加保存⾄.ssh ⽬录中的authorized_keys⽂件中;ssh-copy-id -i /PATH/TO/PUBKEY_FILE [user]@server//使⽤此命令会⾃动将公钥复制到⽬标主机指定⽤户的家⽬录下的.ssh/authorized_keys⽂件中[root@1inux ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub henan@172.16.66.81henan@172.16.66.81's password:Now try logging into the machine, with "ssh 'henan@172.16.66.81'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.2.3、验证:[root@1inux .ssh]# ssh lfs@172.16.66.81Last login: Wed Apr 8 14:31:52 2015 from 172.16.66.90[lfs@1inux ~]$ //可以看到已经登录成功[henan@1inux ~]$ whoamihenan[henan@1inux ~]$ ifconfig | grep "172.16.66"inet addr:172.16.66.81 Bcast:172.16.255.255 Mask:255.255.0.0基于密钥的命令总结1、[root@1inux .ssh]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ''2、[root@1inux ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub henan@172.16.66.813、ssh lfs@172.16.66.812.4、通过ssh直接执⾏命令[root@1inux ~]# ssh -l henan 172.16.66.81 date //由于此⽤于已经基于密钥认证所以没有要求输⼊密码Wed Apr 8 15:01:15 CST 2015五、scp远程复制⼯具的使⽤简介语法:scp [OPTIONS] SRC...DEST常⽤选项:-r: 递归复制,复制⽬录及内部⽂件时使⽤;-p: 保存源⽂件元数据信息中的属主、属组及权限;-q: 静默模式-P PORT: 指明远程服务器使⽤的端⼝;两种模式:PUSH: scp [OPTIONS] /PATH/FROM/SOMEFILE ... user@server:/PATH/TO/DEST //复制本地⽂件⾄远程主机(但远程⽬录⼀定要有写权限)PULL: SCP [OPTIONS] user@server:/PATH/FROM/SOMEFILE /PATH/TO/DEST //远程⽬标主机⽂件⾄本地eg1:复制当前主机上的/etc/ssh/sshd_config⾄172.16.66.90主机的/tmp/aa⽬录下[root@1inux ~]# scp -p /etc/ssh/sshd_config henan@172.16.66.90:/roothenan@172.16.66.90's password:sshd_config 100% 3879 3.8KB/s 00:00eg2:复制远程主机/etc/fstab⾄当前主机当前⽬录下[root@1inux ~]# lsanaconda-ks.cfg Documents grub.conf install.log Music Public VideosDesktop Downloads henan@172.16.66.90 install.log.syslog Pictures Templates[root@1inux ~]# scp root@172.16.66.90:/etc/fstab ./root@172.16.66.90's password:fstab 100% 921 0.9KB/s 00:00[root@1inux ~]# lsanaconda-ks.cfg Documents fstab henan@172.16.66.90 install.log.syslog Pictures Templates Desktop Downloads grub.conf install.log Music Public Videos六、sftp的使⽤要使⽤sftp需要编辑/etc/ssh/sshd_config 开启Subsystem 即:Subsystem sftp /usr/libexec/openssh/sftp-server语法:sftp [USER]@server常⽤命令:put geteg:[root@1inux ~]# sftp root@172.16.66.90Connecting to 172.16.66.90...root@172.16.66.90's password: //输⼊密码sftp> help //可以使⽤help查看其⽀持的命令Available commands:bye Quit sftpcd path Change remote directory to 'path'chgrp grp path Change group of file 'path' to 'grp'chmod mode path Change permissions of file 'path' to 'mode'chown own path Change owner of file 'path' to 'own'df [-hi] [path] Display statistics for current directory orfilesystem containing 'path'exit Quit sftpget [-P] remote-path [local-path] Download filehelp Display this help textlcd path Change local directory to 'path'lls [ls-options [path]] Display local directory listinglmkdir path Create local directoryln oldpath newpath Symlink remote filelpwd Print local working directoryls [-1aflnrSt] [path] Display remote directory listinglumask umask Set local umask to 'umask'mkdir path Create remote directoryprogress Toggle display of progress meterput [-P] local-path [remote-path] Upload filepwd Display remote working directoryquit Quit sftprename oldpath newpath Rename remote filerm path Delete remote filermdir path Remove remote directorysymlink oldpath newpath Symlink remote fileversion Show SFTP version!command Execute 'command' in local shell! Escape to local shellSynonym for help====================================================================================七、增强服务端sshd配置指南1、不要使⽤默认端⼝;(修改默认端⼝为其他端⼝)配置⽂件:/etc/ssh/sshd_configPort 22service sshd restart //修改后需要重启服务2、不要使⽤v1版本协议:Protocol 23、限制可登陆的⽤户 {需要添加}AllowUsers:允许登陆的⽤户⽩名单 (多个⽤户使⽤空格隔开)AllowGroups:允许登陆的组的⽩名单DenyUsersDenyGroups/etc/ssh/sshd_config# service sshd reload==》获取配置⽂件详细信息;【 man sshd_conifg 】4、设定空闲会话超时时长:5、利⽤防⽕墙设置ssh访问策略:限定ssh服务仅允许***服务器分配有限的地址段内的主机访问6、仅监听特定的IP地址:7、使⽤强密码策略:[root@1inux ssh]# tr -dc A-Za-z0-9 < /dev/urandom | head -c 30 | xargsQe6zOmB2sBNpEONVcKhWS8T4bVrcb08、使⽤基于密钥的认证;9、禁⽌使⽤空密码10、禁⽌root直接登陆PermitRootLogin no11、限制ssh的访问频度12、做好⽇志、经常做⽇志分析/var/log/secure。

putty使用密钥登陆OpenSSH配置方法(图文详解)

putty使用密钥登陆OpenSSH配置方法(图文详解)

putty使⽤密钥登陆OpenSSH配置⽅法(图⽂详解)在Windows管理Linux服务器时,常使⽤putty登陆ssh进⾏远程管理。

默认登陆验证⽅式为密码认证,该⽅式虽然简单,但每次登陆都要输⼊⼀长串的密码,相当⿇烦。

⽽且,如果万⼀把root允许登陆打开,还有可能被强⼒破解,导致严重的后果。

所以,通常建议⽤密钥登陆验证代替密码⽅式,即简单,⼜可靠。

⼀、为什么建议使⽤密钥登陆通常现在的Linux发⾏版都使⽤OpenSSH代替telnet、rsh等明⽂传输的终端服务。

以红旗 DC Server 5.0为例:# rpm -qa|grep -E -w 'openssh'openssh-clients-4.0p1-1.2AXopenssh-server-4.0p1-1.2AXopenssh-4.0p1-1.2AX⽽OpenSSH默认是同时⽀持密码和密钥两种认证⽅式的。

转⼀个说明:为什么要使⽤公钥认证通常,通过ssh登录远程服务器时,使⽤密码认证,分别输⼊⽤户名和密码,两者满⾜⼀定规则就可以登录。

但是密码认证有以下的缺点:a)⽤户⽆法设置空密码(即使系统允许空密码,也会⼗分危险)b)密码容易被⼈偷窥或猜到c)服务器上的⼀个帐户若要给多⼈使⽤,则必须让所有使⽤者都知道密码,导致密码容易泄露,⽽且修改密码时必须通知所有⼈⽽使⽤公钥认证则可以解决上述问题。

a)公钥认证允许使⽤空密码,省去每次登录都需要输⼊密码的⿇烦b)多个使⽤者可以通过各⾃的密钥登录到系统上的同⼀个⽤户c)即使修改了对应⽤户的密码,也不会影响登陆d)若同时禁⽤密码认证,则只要保证私钥的安全,不会受到暴⼒破解的威胁⼆、使⽤putty⽣成密钥和登陆根据公钥认证的原理(见后⾯说明),认证双⽅任何⼀⽅都可制作该钥匙对,并且只要认证⽅有被认证⽅的公钥信息,即可匹配成功。

这⾥,我们先以Windows上的putty登陆Linux服务器为例说明。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1 什么是SSH ?传统的网络服务程序,如FTP、Pop和Telnet在传输机制和实现原理上是没有考虑安全机制的,其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,别有用心的人通过窃听等网络攻击手段非常容易地就可以截获这些数据、用户帐号和用户口令。

而且,这些网络服务程序的简单安全验证方式也有其弱点,那就是很容易受到“中间人“(man-in-the-middle)这种攻击方式的攻击。

所谓“中间人“的攻击方式,就是“中间人“冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。

服务器和你之间的数据传送被“中间人“一转手做了手脚之后,就会出现很严重的问题。

SSH是英文Secure Shell的简写形式。

通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人“这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。

使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的“通道“。

最初的SSH是由芬兰的一家公司开发的。

但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。

OpenSSH是SSH的替代软件包,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。

用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。

OpenSSH 2.x 同时支持SSH 1.x和2.x。

1.2 SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议,它主要由以下三部分组成,共同实现SSH的安全保密机制。

传输层协议,它提供诸如认证、信任和完整性检验等安全措施,此外它还可以任意地提供数据压缩功能。

通常情况下,这些传输层协议都建立在面向连接的TCP 数据流之上。

用户认证协议层,用来实现服务器的跟客户端用户之间的身份认证,它运行在传输层协议之上。

连接协议层,分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议之上。

当安全的传输层连接建立之后,客户端将发送一个服务请求。

当用户认证层连接建立之后将发送第二个服务请求。

这就允许新定义的协议可以和以前的协议共存。

连接协议提供可用作多种目的通道,为设置安全交互Shell会话和传输任意的TCP/IP端口和X11连接提供标准方法。

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

第一种级别(基于口令的安全验证),只要你知道自己的帐号和口令,就可以登录到远程主机,并且所有传输的数据都会被加密。

但是,这种验证方式不能保证你正在连接的服务器就是你想连接的服务器。

可能会有别的服务器在冒充真正的服务器,也就是受到“中间人“这种攻击方式的攻击。

第二种级别(基于密匙的安全验证),需要依靠密匙,也就是你必须为自己创建一对密匙,并把公有密匙放在需要访问的服务器上。

如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。

服务器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密匙,然后把它和你发送过来的公有密匙进行比较。

如果两个密匙一致,服务器就用公有密匙加密“质询“(challenge)并把它发送给客户端软件。

客户端软件收到“质询“之后就可以用你的私人密匙解密再把它发送给服务器。

与第一种级别相比,第二种级别不需要在网络上传送用户口令。

但是整个登录的过程可能慢一些。

1.4 SSH的应用首先,SSH最常见的应用就是,用它来取代传统的Telnet、FTP等网络应用程序,通过SSH登录到远方机器执行你想进行的工作与命令。

在不安全的网路通讯环境中,它提供了很强的验证(authentication)机制与非常安全的通讯环境。

实际上,SSH开发者的原意是设计它来取代原UNIX系统上的rcp、rlogin、rsh等指令程序的;但经过适当包装后,发现它在功能上完全可以取代传统的Telnet、FTP等应用程序。

传统BSD 风格的r 系列指令(如rcp,rsh,rlogin)往往都被视为不安全的,很容易就被各种网络攻击手段所破解,几乎所有找得到有关UNIX安全的书或文件,都会一而再、再而三地警告系统管理者,留心r系列指令的设定,甚至要求系统管理者将r系列指令通通关闭。

而用来替代r系列指令的SSH,则在安全方面做了极大的强化,不但对通讯内容可以进行极为安全的加密保护,同时也强化了对身份验证的安全机制,它应用了在密码学(Cryptography)中已发展出来的数种安全加密机制,如Symmetric Key Cryptography,Asymmetric Key Cryptography,One-way Hash Function,Random- number Generation等,来加强对于身份验证与通讯内容的安全保护。

通讯时资料的加密有IDEA,three- key triple DES,DES,RC4-128,TSS,Blowfish 等数种多种安全加密算法可供选择,加密的key则是通过RSA 进行交换的。

资料的加密可以对抗IP spoofing,RSA 这种非对称性的加密机制则可用来对抗DNS spoofing与IP routing spoofing,同时RSA也可以进行对主机身份的验证。

其次,通过使用用SSH可以在本地主机和远程服务器之间设置“加密通道“,并且这样设置的“加密通道“可以跟常见的Pop应用程序、X应用程序、Linuxconf应用程序相结合,提供安全保障。

SSH的“加密通道“是通过“端口转发“来实现的。

你可以在本地端口(没有用到的)和在远程服务器上运行的某个服务的端口之间建立“加密通道“。

然后只要连接到本地端口。

所有对本地端口的请求都被SSH加密并且转发到远程服务器的端口。

当然只有远程服务器上运行SSH服务器软件的时候“加密通道“才能工作。

2.1 openssh的安装和启动tony@tonybox:~$ sudo aptitude updatetony@tonybox:~$ sudo aptitude install openssh-serverReading package lists... DoneBuilding dependency tree... DoneReading extended state informationInitializing package states... DoneReading task descriptions... DoneBuilding tag database... DoneThe following NEW packages will be automatically installed: libedit2 openssh-clientThe following NEW packages will be installed:libedit2 openssh-client openssh-server0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.Need to get 55.4kB/879kB of archives. After unpacking 2130kB will be used.Do you want to continue? [Y/n/?]y...Setting up openssh-server (4.3p2-5) ...Creating SSb RSA key; this may take some time ...Creating SSb DSA key; this may take some time ...Restarting OpenBSD Secure Shell server: sshd.//创建服务器RSA/DSA密钥对tony@tonybox:~$安装完毕后默认生成以下配制文件:tony@tonybox:~$ ls /etc/ssh -ltotal 160-rw-r--r-- 1 root root 132839 2006-10-07 23:10 moduli //ssh 服务器的Diffie-Hellman密钥文件-rw-r--r-- 1 root root 1423 2006-10-07 23:10 ssh_config //ssh 客户端配置文件-rw-r--r-- 1 root root 1874 2006-10-20 17:45 sshd_config //ssh 服务器配置文件-rw------- 1 root root 668 2006-10-20 17:46 ssh_host_dsa_key //ssh 服务器dsa算法私钥-rw-r--r-- 1 root root 602 2006-10-20 17:46 ssh_host_dsa_key.pub //ssh服务器dsa算法公钥-rw------- 1 root root 1679 2006-10-20 17:46 ssh_host_rsa_key //ssh服务器rsa算法私钥-rw-r--r-- 1 root root 394 2006-10-20 17:46 ssh_host_rsa_key.pub //ssh服务器rsa算法公钥tony@tonybox:~$如果没有特别要求使用默认设置即可满足使用要求.启动ssh服务$ sudo /etc/init.d/ssh start停止ssh服务$ sudo /etc/init.d/ssh stop重启ssh服务$ sudo /etc/init.d/ssh restart使用ssh首次连接一个远程ssh服务器时,会出现类似下边的信息。

这是因为ssh不能识别这台主机,键入yes将会把这台服务器的信息写入/.ssh/known_hosts文件,下次连入这台远程服务器时就不会出现这类信息。

tony@tonybox:~$ ssh root@192.168.102.50The authenticity of host '192.168.102.50 (192.168.102.50)' can't be established.RSA key fingerprint is c6:d4:e7:23:03:ce:15:2c:08:ec:39:7e:52:29:a5:a6.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.102.50' (RSA) to the list of known hosts.root@192.168.102.50's password:******Last login: Thu Oct 26 10:38:41 2006Linux vmdebian 2.6.16-2-486 #1 Fri Aug 18 18:39:04 UTC 2006 i686The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.vmdebian:~#2.2 默认配置默认sshd_config文件# Package generated configuration file# See the sshd(8) manpage for details# What ports, IPs and protocols we listen forPort 22#默认使用22端口# Use these options to restrict which interfaces/protocols sshd will bind to#ListenAddress ::#ListenAddress 0.0.0.0Protocol 2#使用ssb协议# HostKeys for protocol version 2HostKey /etc/ssh/ssh_host_rsa_keyHostKey /etc/ssh/ssh_host_dsa_key#主机密钥存储在此#Privilege Separation is turned on for security UsePrivilegeSeparation yes#需要sshd用户启动ssh服务# Lifetime and size of ephemeral version 1 server key KeyRegenerationInterval 3600ServerKeyBits 768服务器在启动时生成这个密钥。

相关文档
最新文档