『壹』 如何开启SSH SERVER服务
SSH分客户端openssh-client和openssh-server
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server
sudo apt-get install openssh-server
然后确认sshserver是否启动了:
ps -e |grep ssh
如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:sudo /etc/init.d/ssh start
ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。
然后重启SSH服务:
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
然后使用以下方式登陆SSH:
ssh [email protected] username为192.168.1.112 机器上的用户,需要输入密码。
断开连接:exit
『贰』 如何开启ubuntu的SSH服务
1,首先安装ssh服务:执行命令:
sudo apt-get install openssh-server
2,然后确认sshserver是否启动,执行ps -e |grep ssh
如果只有ssh-agent那ssh-server还没有启动,如果看到sshd那说明ssh-server已经启动了。
3,ssh-server配置文件位于/etc/ssh/sshd_config
可以定义SSH的服务端口,默认端口是22,也可以改成其他端口。
4,然后重启SSH服务sudo /etc/init.d/ssh resart
『叁』 ubuntu 怎么安装sshd
sudo apt-get install openssh-server
Ubuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话,再用apt-get安装上即可。
然后确认sshserver是否启动了:
ps -e |grep ssh
如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。
ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服务:
sudo /etc/init.d/ssh resar
ssh连接:ssh linux[email protected]
1. 首先在服务器上安装ssh的服务器端。
$ sudo aptitude install openssh-server
2. 启动ssh-server。
$ /etc/init.d/ssh restart
3. 确认ssh-server已经正常工作。
$ netstat -tlp
tcp6 0 0 *:ssh *:* LISTEN -
看到上面这一行输出说明ssh-server已经在运行了。
4. 在客户端通过ssh登录服务器。假设服务器的IP地址是192.168.0.103,登录的用户名是hyx。
$ ssh -l hyx 192.168.0.103
接下来会提示输入密码,然后就能成功登录到服务器上了
『肆』 ssh服务介绍
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 172.16.1.61: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 192.168.1.1
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 192.168.1.1
"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/hosts.equiv”进行安全验证是否已经足够了。
RhostsRSAAuthentication no
"RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上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)我们切换过去就不需要密码了 如图
『伍』 windows Openssh-server(服务端-免密登陆设置)
windows10(其它版本请自行网络)
一、win10 安装spenssh
1、服务端切换到C:ProgramDatassh下(首次启动sshd后会生成该文件夹),打开sshd_config文件
2、修改 sshd_config 配置文件参数
3、重启ssh-server服务
三、服务端设置完成, 设置客户端链接
1、客户端生成ssh密钥文件:
注: -d 4096 是设置加密位数(可不要); -t 任意字符 必须设置
2、需要将客户端(celient)生成的 id_rsa.pub 文件密钥, 追加 到服务端的 authorized_keys 文件中,[authorized_keys 文件路径: windows系统在 C:UsersAdministrator.ssh 目录下,没有可新建]
四、测试ssh免密链接, 首次需要输入密码
『陆』 ssh服务器端配置文件的绝对路径
一般ssh服务的配置文件为/etc/sshd/sshd-config.不同的发行版略有不同,但通常都在/etc目录。
『柒』 ubuntu配置ssh server
ubuntu版本是Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64),所有操作在一台机器上进行。
1. 安装:
sudo apt-get install openssh-server
2. 启动ssh服务:
sudo /etc/init.d/ssh start
3. 以账号密码ssh登录(不安全):
ssh root@localhost
通过以上命令以root身份登录会失败,第一是配置中默认不允许通过密码登录,另外是root密码由系统设置,需要先设置密码。root身份涉及到安全,一般强烈不建议这么做。但是我们为了研究一下,就是要用root身份登录怎么办?
1)修改登录配置。
sudo vim /etc/ssh/sshd_config
打开这个配置文件后,找到配置项PermitRootLogin,当前的设置是prohibit-password。
PermitRootLogin prohibit-password
我们修改一下,设置为允许root身份以密码登录。
PermitRootLogin yes
#PermitRootLogin prohibit-password (这行保留,仅仅只是注释掉)
修改完成后,重启ssh服务生效。
sudo /etc/init.d/ssh restart
2)修改root密码。
hhh:~$ sudo passwd
[sudo] password for hhh:
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
hhh:~$
按照以上命令成功修改后,就可以用root身份本地登录了。验证一下,用su命令后提示输入密码,成功登录后提示符从$变为#,说明进入root模式。通过exit可以退出root模式,退出后提示符又变回$。
hhh:~$ su
密码:
root@hhh:~# exit
exit
hhh:~$
3)以root身份ssh登录本机
hhh:~$ ssh root@localhost
root@localhost's password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
1 个可升级软件包。
0 个安全更新。
*** 需要重启系统 ***
Last login: Fri Apr 14 09:58:03 2017 from 127.0.0.1
root@hhh:~#exit
注销
Connection to localhost closed.
登录成功,试验完毕。为了回到安全状态,执行sudo vim /etc/ssh/sshd_config,将原来注释掉的PermitRootLogin prohibit-password
打开,新添加的yes选项注释掉或者删掉。
4. 以公钥认证ssh登录
1)在客户端生成密钥对。
hhh:~$ ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hhh/.ssh/id_rsa): /home/hhh/.ssh/ida_rsa_hhh
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hhh/.ssh/id_rsa_hhh.
Your public key has been saved in /home/hhh/.ssh/id_rsa_hhh.pub.
The key fingerprint is:
SHA256:zB/ [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| . ++O*=+o.|
| + *==+o. |
| .o=. E |
| + o .+ .|
| S ....o o|
| . o=. o.|
| ..o+o +|
| o+.o o.|
| ...+ ..o|
+----[SHA256]-----+
密钥文件默认存放在当前用户目录下的.ssh目录下,公钥文件是id_rsa.pub,私钥文件是id_rsa。如果之前已经生成过密钥对,需要重新指定文件路径存放新的密钥对,如上所示,将文件路径重新指定为/home/hhh/.ssh/ida_rsa_hhh。
2)将公钥上传到对应服务端
需要将客户端生成的公钥上传到服务器,并且拷贝到对应用户的.ssh目录下。我们这里是本地登录,客户端用户账号和服务端要登录的账号是同一个账号,所以这一步就省略掉了。然后,将公钥放入到授权文件中。
cd ~/.ssh
cat id_rsa_hhh.pub >> authorized_keys
chmod 0600 authorized_keys(仅允许本用户读写,否则可能被修改)
3)尝试ssh登录普通账号并退出
ssh hhh@localhost
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
1 个可升级软件包。
0 个安全更新。
*** 需要重启系统 ***
Last login: Thu Apr 13 17:28:07 2017 from 127.0.0.1
hhh:~$ exit
注销
Connection to localhost closed.
5. 尝试ssh登录root账号
hhh:~$ ssh root@localhost
root@localhost's password:
Permission denied, please try again.
无法登录。这里要解决两个问题,一个配置成可以root登录,另一个是要配置公钥文件。
首先,修改配置文件。sudo vim /etc/ssh/sshd_config, 找到PermitRootLogin,将其后面no改为yes。
其次,类似普通用户的公钥文件配置,在/etc/ssh目录下做一个类似~/.ssh目录下的authorized_keys文件。此处,我们可以简单拷贝这个文件过来。sudo cp ~/.ssh/authorized_keys /etc/ssh/authorized_keys。这个authorized_keys里面如果存有多个公钥,将会带来安全隐患,所以要按需拷贝,此处只是为了省事,就直接把文件拷贝过来了。
再次试验,成功登录并退出。
hhh:~
$ ssh root@localhost
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
1 个可升级软件包。
0 个安全更新。
*** 需要重启系统 ***
Last login: Fri Apr 14 13:51:38 2017 from 127.0.0.1
root@hhh:~# exit
注销
Connection to localhost closed.
hhh:~$
试验结束,记得将原来的配置文件改回去并重启ssh服务。