Linux OpenSSL:基於密碼和密鑰的遠程登陸

SSH: Secure shell, prototol, 22/tcp,安全的遠程登陸算法

OpenSSH: ssh協議的開源實現shell

ssh協議版本centos

v1: 基於CRC-32作MAC,不安全: man-in-middle安全

v2: 雙方主機協議選擇安全的MAC方式, 基於DH算法作密鑰交換,基於RSA或DSA算法實現身份認證;bash

兩種方式的用戶登陸認證:基於Password & 基於key服務器

OpenSSH:    C/Sdom

Client: ssh, scp, sftp,ssh

Server: sshdtcp

備註:Windows clinet: xshell, putty, securecrt, sshsecureshellclientide

客戶端組件:sshd

ssh, 配置文件 :/etc/ssh/ssh_config

格式:ssh [user@]host [COMMAND]
      ssh [ –l user ] host [COMMAND]
      -p port: 遠程服務器監聽的端口;

服務器端組件:sshd

sshd, 配置文件: /etc/ssh/sshd_config

 

示例:模擬環境

CentOS 7, IP: 192.168.0.111

CentOS 6.7,IP:192.168.0.113

能夠使用以下命令查看系統的版本信息(適用用RedHat, CentOS)

[root@jimjimlv ~]# cat /etc/redhat-release    
CentOS release 6.7 (Final)

不指定用戶遠程登陸主機CentOS 6.7

[root@localhost ~]# cat /etc/redhat-release    
CentOS Linux release 7.1.1503 (Core)     
[root@localhost ~]# ssh 192.168.0.113     
The authenticity of host '192.168.0.113 (192.168.0.113)' can't be established.     
RSA key fingerprint is a8:16:d9:15:8a:01:e5:d3:fb:26:bd:94:13:3e:50:6e.     
Are you sure you want to continue connecting (yes/no)? yes   #第一次受權密鑰確認  
Warning: Permanently added '192.168.0.113' (RSA) to the list of known hosts.     
root@192.168.0.113's password:       #輸入root管理密碼
Last login: Fri Feb 19 22:14:48 2016 from 192.168.0.109     #成功登陸遠程主機
[root@jimjimlv ~]# cat /etc/redhat-release     
CentOS release 6.7 (Final)

使用exit命令退出遠程登陸

[root@jimjimlv ~]# exit    
logout     
Connection to 192.168.0.113 closed.

指定用戶centos6.7遠程登陸主機CentOS 6.7

[root@localhost ~]# ssh centos6.7@192.168.0.113    
centos6.7@192.168.0.113's password:     
[centos6.7@jimjimlv ~]$ cat /etc/redhat-release     
CentOS release 6.7 (Final)

生產環境當中,從安全的角度出發,默認的主機訪問端口都須要修改掉,如下將演示修改端口後的主機遠程訪問方法

步驟1、修改配置文件/etc/ssh/sshd_config

#       $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $
# This is the sshd server system-wide configuration file.  See    
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
# 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 override the     
# default value.
# If you want to change the port on a SELinux system, you have to tell    
# SELinux about this change.     
# semanage port -a -t ssh_port_t -p tcp 
#PORTNUMBER     
#     
Port 2223    
#AddressFamily any     
ListenAddress 0.0.0.0     
#ListenAddress ::

重啓sshd服務

[root@localhost ssh]# systemctl restart sshd.service

關閉防火牆

CentOS 6 #service sshd restart
CentOS 7 #systemctl stop firewalld.service
Xsheel:\>ssh  2223 #IP地址後緊跟着新端口號

wKiom1bJa7-jhVlkAAB8xY23gW4871.png

Last login: Sat Feb 20 22:49:35 2016 from 192.168.0.109     
[root@localhost ~]# cat /etc/redhat-release     
CentOS Linux release 7.1.1503 (Core)

 基於key的ssh遠程登陸

[root@localhost .ssh]# 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_rsa.pub.     
The key fingerprint is:     
9d:fc:93:7d:9a:00:01:47:23:69:9e:08:0c:cf:ca:bd root@localhost.localdomain     
The key's randomart p_w_picpath is:     
+--[ RSA 2048]----+     
|  .o    oo+      |     
|   oo   o+ .     |     
|    o. + ..      |     
| . o  . oo o     |     
|  o .   S =      |     
|     .     o o   |     
|    E       = . .|     
|             o + |     
|              o  |     
+-----------------+     
[root@localhost .ssh]# ls     #密鑰存儲的位置爲/root/.ssh/
id_rsa  id_rsa.pub  known_hosts     
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa root@192.168.0.113 #複製密鑰到遠程主機    
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed     
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys     
root@192.168.0.113's password: #輸入root登陸密碼
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@192.168.0.113'"    and check to make sure that only the key(s) you wanted were added.
[root@localhost .ssh]# ssh root@192.168.0.113    #訪問登陸遠程主機時,無需提供帳戶與密碼認證登陸
Last login: Sat Feb 20 01:53:08 2016

直接運行遠程主機的某個命令:

[root@localhost .ssh]# ssh root@192.168.0.113 'ifconfig'     
eth0      Link encap:Ethernet  HWaddr 00:0C:29:F0:55:67            
          inet addr:192.168.0.113  Bcast:192.168.0.255  Mask:255.255.255.0               
          inet6 addr: fe80::20c:29ff:fef0:5567/64 Scope:Link               
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1               
          RX packets:6116 errors:0 dropped:0 overruns:0 frame:0               
          TX packets:1449 errors:0 dropped:0 overruns:0 carrier:0               
          collisions:0 txqueuelen:1000               
          RX bytes:526598 (514.2 KiB)  TX bytes:181464 (177.2 KiB)
lo        Link encap:Local Loopback            
          inet addr:127.0.0.1  Mask:255.0.0.0               
          inet6 addr: ::1/128 Scope:Host               
          UP LOOPBACK RUNNING  MTU:65536  Metric:1               
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0               
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0               
          collisions:0 txqueuelen:0               
          RX bytes:628 (628.0 b)  TX bytes:628 (628.0 b)
[root@localhost .ssh]#
相關文章
相關標籤/搜索