ssh的原理及使用
2015-01-01 15:59
351 查看
和Linux打交道,免不了用到ssh的相关知识。花大时间写这篇诸公可在分分钟透彻了解ssh原理和使用。不谢
一般远程登录都用ssh了,telnet什么的传输的是明文因为,ssh基于公钥私钥加密,而且还带压缩的。
OK,这里说道公钥私钥的问题,顺便再普及下:
首先知道一点:公钥加密的用私钥来解密,私钥加密的用公钥解密。
公钥:顾名思义是公开给别人的,A公开给B,B就能通过A的公钥来解密A的报文
密钥:自己留着。作用是认证。鉴别用户真伪。解释下:如何知道这是A的报文,因为只有A知道他自己的私钥然后用私钥加密数据,所以B如果解开了报文,就能肯定这报文就是A的不是别个伪装的,不然也解不开
SSH最简单的使用方法就是直接打命令 “ ssh 用户名@主机地址 ” 主机地址一般就是IP地址啦,用户名自然是主机上的用户,避免不入门的同学上来把本机的用户名替换上去了。当然这种方法方便,只是需要每次输入密码。
一般是通过公钥登录,现在几乎所有用ssh远程连接的软件,比如XShell,SecureCRT都是用这种,第一次连接的时候就把自己的公钥上传到远程主机。这里我们不用这些软件,自己打命令来看下这过程。反正都不复杂,而且现在的Linux都是默认装了ssh服务的
首先生成公钥,命令 ssh-keygen,如果想带参数的话一般有这么几个 ,-t 指定加密类型(rsa 或者dsa)-f 密钥 生成的位置 -b 密钥长度,越长越安全。不过加密解密也会慢些,一般没人设置这玩意。总之咱一般用直接打不带参数的就中啊。后面有机会让你填公钥文件生成的路径什么的。
看到了吧,就是如此。那个passphrase什么的我也说不清,就直接回车让他为空就好。这里说下那个fingerprint,人称“指纹”就是这样。这玩意是根据私钥文件生成的一串码,作用是啥呢。就是SSH有个缺陷叫做中间人攻击,上图做解释吧。这个指纹就是让你第一次连的时候知道你连的是谁,你以为你登陆那台主机然后把登陆密码发过去了结果人不是那台主机。就这么回事。到此,公钥密钥就都有了,路径在哪看上图。
OK,下一步,把这个公钥给远程主机。命令 ssh-copy-id user@host ,然后提示你输密码。成功了之后你再用命令 " ssh user@host " ,就可以直接登入而不用输入密码了。如果执行这条出现什么” No identities found “的错误,就加上-i 参数,”-i 公钥文件路径“
。远程主机把公钥存在主目录下 .ssh文件夹下的anthorized_keys文件中。
最后很有用的scp命令,基于ssh,上步可以通过scp实现同样功能。 如 scp user@host:~/.ssh/i_dsa.pub ~/.ssh 就可以实现把远程主机的内容拷贝到本地,然后把pub导入到authorized_keys文件中,命令:cat 文件 >> authorized_keys,也可以从本地传到远程。
总算写完了, 太累了,上面步骤经我亲测。希望读者有收获。2015,着手写技术博客。元旦快乐。
一般远程登录都用ssh了,telnet什么的传输的是明文因为,ssh基于公钥私钥加密,而且还带压缩的。
OK,这里说道公钥私钥的问题,顺便再普及下:
首先知道一点:公钥加密的用私钥来解密,私钥加密的用公钥解密。
公钥:顾名思义是公开给别人的,A公开给B,B就能通过A的公钥来解密A的报文
密钥:自己留着。作用是认证。鉴别用户真伪。解释下:如何知道这是A的报文,因为只有A知道他自己的私钥然后用私钥加密数据,所以B如果解开了报文,就能肯定这报文就是A的不是别个伪装的,不然也解不开
SSH最简单的使用方法就是直接打命令 “ ssh 用户名@主机地址 ” 主机地址一般就是IP地址啦,用户名自然是主机上的用户,避免不入门的同学上来把本机的用户名替换上去了。当然这种方法方便,只是需要每次输入密码。
一般是通过公钥登录,现在几乎所有用ssh远程连接的软件,比如XShell,SecureCRT都是用这种,第一次连接的时候就把自己的公钥上传到远程主机。这里我们不用这些软件,自己打命令来看下这过程。反正都不复杂,而且现在的Linux都是默认装了ssh服务的
首先生成公钥,命令 ssh-keygen,如果想带参数的话一般有这么几个 ,-t 指定加密类型(rsa 或者dsa)-f 密钥 生成的位置 -b 密钥长度,越长越安全。不过加密解密也会慢些,一般没人设置这玩意。总之咱一般用直接打不带参数的就中啊。后面有机会让你填公钥文件生成的路径什么的。
看到了吧,就是如此。那个passphrase什么的我也说不清,就直接回车让他为空就好。这里说下那个fingerprint,人称“指纹”就是这样。这玩意是根据私钥文件生成的一串码,作用是啥呢。就是SSH有个缺陷叫做中间人攻击,上图做解释吧。这个指纹就是让你第一次连的时候知道你连的是谁,你以为你登陆那台主机然后把登陆密码发过去了结果人不是那台主机。就这么回事。到此,公钥密钥就都有了,路径在哪看上图。
OK,下一步,把这个公钥给远程主机。命令 ssh-copy-id user@host ,然后提示你输密码。成功了之后你再用命令 " ssh user@host " ,就可以直接登入而不用输入密码了。如果执行这条出现什么” No identities found “的错误,就加上-i 参数,”-i 公钥文件路径“
。远程主机把公钥存在主目录下 .ssh文件夹下的anthorized_keys文件中。
最后很有用的scp命令,基于ssh,上步可以通过scp实现同样功能。 如 scp user@host:~/.ssh/i_dsa.pub ~/.ssh 就可以实现把远程主机的内容拷贝到本地,然后把pub导入到authorized_keys文件中,命令:cat 文件 >> authorized_keys,也可以从本地传到远程。
总算写完了, 太累了,上面步骤经我亲测。希望读者有收获。2015,着手写技术博客。元旦快乐。
相关文章推荐
- SSH原理及应用---Struts2的工作机制及使用
- SSH原理及应用---hibernate的原理及使用
- SSH原理和基本使用:ssh 安全配置 以及ssh key 认证登录
- 详解linux系统下SSH原理与运用+rsync和scp使用
- SSH 使用原理 与解释
- [转]SSH 原理和基本使用:ssh 安全配置 以及ssh key 认证登录
- SSH之登陆原理以及使用
- SSH原理和使用
- 使用ssh实现免密码登录及实现原理
- SSH原理探析与Linux下SSH命令使用方法详解
- SSH 原理和基本使用:ssh 安全配置 以及ssh key 认证登录
- ssh整合原理及其为什么使用
- SSH原理及应用---Spring的工作机制及使用
- SSH原理和使用
- git使用ssh方式clone时候的,配置公钥和私钥的原理
- JavaEE--SSH--structs2-拦截器(Interceptor)的原理及使用
- 20150920 加密和解密原理 Open SSL OPEN SSH使用
- SSH原理和使用
- 客户端服务器SSH原理和使用
- SSH的原理及为什么使用