码迷,mamicode.com
首页 > 其他好文 > 详细

ssh实现远程登陆以及使用技巧

时间:2015-08-05 22:48:25      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:

  • SSH简介

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝。

利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行 SSH。

有关SSH协议的部分可以参考以下博客

http://blog.csdn.net/macrossdzh/article/details/5691924

  • SSH安装

  • 查看SSH版本信息

在Ubuntu 14.04 LTS上默认安装了SSH客户端

可以使用命令

dpkg -l | grep ssh-client

查看相关客户端信息

技术分享

使用

ssh -V

可以查看ssh的版本

技术分享

安装SSH服务器

sudo apt-get install openssh-server

安装完成后会默认开启SSH服务

重启服务

sudo service ssh restart

测试使用

ssh -l username hostip

*username:被远程登陆的用户名

*hostip:被远程的登陆的IP

技术分享

登陆远程主机

ssh username@hostip

  • 简化命令的技巧

方法一

配置SSH

在~/.ssh目录下创建文件config

touch ~/.ssh/config

在config文件中编写

Host    *test
HostName 192.168.1.102
User doggy

*将test部分替换成自己的内容即可

配置完成后使用命令

ssh test

就可以实现登陆192.168.1.102上的用户doggy了

此处的test可以换成任意名字

方法二

将hostip添加到/etc/hosts中,使用如下格式

hostip name

name:给ip取的别名

技术分享

此时可以使用命令

ssh doggy@vb

登陆到远程主机

doggy:我的远程主机用户名

但是依然很麻烦,接着简化

在~/bin中创建一根文件doggy_ssh(名字自取),并添加如下内容

ssh username@hostip

保存退出,添加可执行权限

sudo chmode +x doggy_ssh

现在就可以在终端直接使用 doggy_ssh 登陆远程主机了(这下好多了)

问题来了,每次在使用ssh登陆是总要输入密码,使用以下方法可以避免

生成SSH密钥

ssh-keygen

然后一路回车,使用SSH的默认值,此时会在~/.ssh中生成一个公钥,以及一个私钥,这个公钥就是我们需要的

在SSH的服务器端的~/.ssh目录下创建文件authorized_keys,然后将刚刚生成的公钥添加到该文件中

此时就可以实现不用输入密码登陆远程主机

向SSH服务器添加公钥的另一种方法,使用命令

ssh-copy-id -i ~/.ssh/id_rsa.pub hostip

使用scp实现文件和目录拷贝,实际上scp使用与cp的使用是一样的,只是在使用scp时,要添加远程主机的ip,以下是详解

SSH 提供了一些命令和 shell 用来登录远程服务器。在默认情况下,不允许用户拷贝文件,但还是提供了一个“ scp ”命令,使用方法如下:

本地文件复制到远程:

scp FileName RemoteUserName@RemoteHostIp:RemoteFile
scp FileName RemoteHostIp:RemoteFolder
scp FileName RemoteHostIp:RemoteFile

本地目录复制到远程:

scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder
scp -r FolderName RemoteHostIp:RemoteFolder

远程文件复制到本地:

scp RemoteUserName@RemoteHostIp:RemoteFile FileName
scp RemoteHostIp:RemoteFolder FileName
scp RemoteHostIp:RemoteFile FileName

远程目录复制到本地:

scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
scp -r RemoteHostIp:RemoteFolder FolderName

这里只测试一个命令,其它操作都是大同小异。

远程文件复制到本地:

scp RemoteUserName@RemoteHostIp:RemoteFile FileName

RemoteUserName:远程用户名

RemoteHostIp:远程ip

RemoteFile:远程文件,可带上路径

FileName:拷贝到本地后的名字,可带上路径,不带路径拷贝到当前目录


Ps:本文内容参考的有关博客:

使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录   

Linux下SSH安装配置使用详解:

http://www.linuxidc.com/Linux/2015-03/115056.htm

如果在使用是遇到困难,可以参考happypeter的有关视频

http://haoduoshipin.com/v/62

视频不长,但是个人认为讲的还是很清晰的

ssh实现远程登陆以及使用技巧

标签:

原文地址:http://my.oschina.net/SBaof/blog/488404

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!