代码改变世界

Linux_OpenSSH远程连接

2015-11-09 10:52  云物互联  阅读(326)  评论(0编辑  收藏  举报

目录

SSH server

Software:Openssh-server
Service:
1.ssh(Security Shell)
2.sftp-server(Security File Transfer Protocol)
Configure directory:/etc/ssh

SSH服务属性

ssh(Secure Shell)协议:加密远程传输协议
ServerEnd port: 22
ClientEnd port:> 1024
配置文件:/etc/ssh/sshd_config(Server)、/etc/ssh/ssh_config(Client)
ssh Server(被连接端)发送Server公钥 —-> ssh Client(发起连接):~/.ssh/known_hosts

SSH协议执行原理

Client将拥有的公钥发送给Server并于Server的私钥进行比对。
若一致:Server用Client公钥加密一个将来传输的密码,再将密码发给Client,Clinet用自己的私钥来解密得到传输密码,Client用传输密码对数据加密。
若不一致:则拒绝访问。

SSH连接方式

1.密码验证
2.密钥验证,实现步骤:
(1)Client(连接段)生成密钥对(公钥/私钥)
ssh-keygen #Create KeyPair in /UserName/.ssh
(2)将公钥发送给Server(被连接端)
ssh-copy-id -i ~/.ssh/id_rsa.pub userName@[hostname|ip]

ssh Commands

ssh userName@[hostname|IP]   #Remote connect
ssh -X userName@[hostname|IP]  #Support GUI
ssh userName@[hostname|IP] [commands]  #[commands]:Execute following commands.

使用-X选项,需要在服务器端的/etc/ssh/ssh_config文件中设置 ForwardX11 yes 或者 X11Forwad yes,以启用 X11 Forwarding。

scp commands

scp:Security copy

scp -r [file|dir] userName@hostname:dirUrl #Copy local [file|directory] into remote host
scp -r userName@hostname:dirUrl [file|dir]  #Copy remote [file|firectory] into local host

sftp commands

sftp userName@[hostname|IP]  #Entry security ftp via protocol of ssh

连接Sftp后可以使用下面指令进行上传和下载文件
get file #dowmload the file
put file #upload the file

SSH在生产环境中的使用

一般不允许远程连接到root
在SSH Server配置:
vim /etc/ssh/sshd_config

PermitRootLogin  no

重启SSH服务

systemctl restart sshd.service

拒绝别人用密码登陆
在SSH Server配置:
vim /etc/ssh/sshd_config

PasswordAuthentication  no

重启SSH服务

systemctl restart sshd.service

系统间备份文件rsync

基于SSH协议的同步备份指令rsync
指令格式
rsync -option fileName userName@[hostname|ip]:/directory
Example:

rsync -a /etc/ 192.168.0.2:/tmp

注意
如果是/etc/ ,复制过去的是目录下面的内容
如果是/etc,复制过去的是目录和目录下面的内容
选项
-a 归档
-v 显示过程
-r 子目录
-l 同步链接文件
-p 保留权限
-t 保留时间戳
-g 保留属组
-o 保留属主