位置: 编程技术 - 正文

SSH使用指南(ssh用法及命令)

编辑:rootadmin
SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的"通道"。统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到"中间人"(man-in-the-middle)这种方式的攻击。所谓"中间人"的攻击方式,就是"中间人"冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被 "中间人"一转手做了手脚之后,就会出现很严重的问题。最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。SSH的安全验证是如何工作的从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到"中间人"这种方式的攻击。第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密"质询"(challenge)并把它发送给客户端软件。客户端软件收到"质询"之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且"中间人"这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要秒。安装并测试OpenSSH因为受到美国法律的限制,在很多Linux的发行版中都没有包括OpenSSH。但是,可以从网络上下载并安装OpenSSH(有关OpenSSH的安装和配置请参考: -l [your accountname on the remote host] [address of the remote host]如果OpenSSH工作正常,你会看到下面的提示信息:The authenticity of host [hostname] can't be established.Key fingerprint is 5f:a0:0b::d3::df:ab:::6d::9c:fe:e9:.Are you sure you want to continue connecting (yes/no)?OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入"yes"。这将把这台主机的"识别标记"加到"~/.ssh/know_hosts"文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。然后,SSH提示你输入远程主机上你的帐号的口令。输入完口令之后,就建立了SSH连接,这之后就可以象使用telnet那样使用SSH了。SSH的密匙生成你自己的密匙对生成并分发你自己的密匙有两个好处:1) 可以防止"中间人"这种攻击方式2) 可以只用一个口令就登录到所有你想登录的服务器上用下面的命令可以生成密匙:ssh-keygen如果远程主机使用的是SSH 2.x就要用这个命令:ssh-keygen -d在同一台主机上同时有SSH1和SSH2的密匙是没有问题的,因为密匙是存成不同的文件的。ssh-keygen命令运行之后会显示下面的信息:Generating RSA keys: ............................ooooooO......ooooooOKey generation complete.Enter file in which to save the key (/home/[user]/.ssh/identity):[按下ENTER就行了]Created directory '/home/[user]/.ssh'.Enter passphrase (empty for no passphrase):[输入的口令不会显示在屏幕上]Enter same passphrase again:[重新输入一遍口令,如果忘记了口令就只能重新生成一次密匙了]Your identification has been saved in /home/[user]/.ssh/identity.[这是你的私人密匙]Your public key has been saved in /home/[user]/.ssh/identity.pub.The key fingerprint is: 2a:dc::2f:::a2:e4:a1:1e:a9::e2:fa:a5: [user]@[local machine]"ssh-keygen -d"做的是几乎同样的事,但是把一对密匙存为(默认情况下)"/home/[user]/.ssh/id_dsa"(私人密匙)和"/home/[user]/.ssh/id_dsa.pub"(公用密匙)。现在你有一对密匙了:公用密匙要分发到所有你想用ssh登录的远程主机上去;私人密匙要好好地保管防止别人知道你的私人密匙。用"ls -l ~/.ssh/identity"或"ls -l ~/.ssh/id_dsa"所显示的文件的访问权限必须是"-rw-------"。如果你怀疑自己的密匙已经被别人知道了,不要迟疑马上生成一对新的密匙。当然,你还要重新分发一次公用密匙。分发公用密匙在每一个你需要用SSH连接的远程服务器上,你要在自己的家目录下创建一个".ssh"的子目录,把你的公用密匙"identity.pub" 拷贝到这个目录下并把它重命名为"authorized_keys"。然后执行:chmod .ssh/authorized_keys这一步是必不可少的。如果除了你之外别人对"authorized_keys"文件也有写的权限,SSH就不会工作。如果你想从不同的计算机登录到远程主机,"authorized_keys"文件也可以有多个公用密匙。在这种情况下,必须在新的计算机上重新生成一对密匙,然后把生成的"identify.pub"文件拷贝并粘贴到远程主机的"authorized_keys"文件里。当然在新的计算机上你必须有一个帐号,而且密匙是用口令保护的。有一点很重要,就是当你取消了这个帐号之后,别忘了把这一对密匙删掉。配置SSH配置客户端的软件OpenSSH 有三种配置方式:命令行参数、用户配置文件和系统级的配置文件("/etc/ssh/ssh_config")。命令行参数优先于配置文件,用户配置文件优先于系统配置文件。所有的命令行的参数都能在配置文件中设置。因为在安装的时候没有默认的用户配置文件,所以要把 "/etc/ssh/ssh_config"拷贝并重新命名为"~/.ssh/config"。标准的配置文件大概是这样的:[lots of explanations and possible options listed]# Be paranoid by defaultHost *ForwardAgent noForwardX noFallBackToRsh no还有很多选项的设置可以用"man ssh"查看"CONFIGURATION FILES"这一章。配置文件是按顺序读取的。先设置的选项先生效。假定你在www.foobar.com上有一个名为"bilbo"的帐号。而且你要把"ssh-agent"和"ssh-add"结合起来使用并且使用数据压缩来加快传输速度。因为主机名太长了,你懒得输入这么长的名字,用"fbc"作为"www.foobar.com"的简称。你的配置文件可以是这样的:Host *fbcHostName www.foobar.comUser bilboForwardAgent yesCompression yes# Be paranoid by defaultHost *ForwardAgent noForwardX noFallBackToRsh no你输入"ssh fbc"之后,SSH会自动地从配置文件中找到主机的全名,用你的用户名登录并且用"ssh-agent"管理的密匙进行安全验证。这样很方便吧!用SSH连接到其它远程计算机用的还是"paranoid(偏执)"默认设置。如果有些选项没有在配置文件或命令行中设置,那么还是使用默认的"paranoid"设置。在我们上面举的那个例子中,对于到www.foobar.com的SSH连接:"ForwardAgent"和"Compression"被设置为 "Yes";其它的设置选项(如果没有用命令行参数)"ForwardX"和"FallBackToRsh"都被设置成"No"。其它还有一些需要仔细看一看的设置选项是:l CheckHostIP yes这个选项用来进行IP地址的检查以防止DNS欺骗。l CompressionLevel压缩的级别从"1"(最快)到"9"(压缩率最高)。默认值为"6"。l ForwardX yes为了在本地运行远程的X程序必须设置这个选项。l LogLevel DEBUG当SSH出现问题的时候,这选项就很有用了。默认值为"INFO"。配置服务端的软件SSH服务器的配置使用的是"/etc/ssh/sshd_config"配置文件,这些选项的设置在配置文件中已经有了一些说明而且用"man sshd"也可以查看帮助。请注意OpenSSH对于SSH 1.x和2.x没有不同的配置文件。在默认的设置选项中需要注意的有:l PermitRootLogin yes最好把这个选项设置成"PermitRootLogin without-password",这样"root"用户就不能从没有密匙的计算机上登录。把这个选项设置成"no"将禁止"root"用户登录,只能用"su"命令从普通用户转成"root"。l XForwarding no把这个选项设置成"yes"允许用户运行远程主机上的X程序。就算禁止这个选项也不能提高服务器的安全因为用户可以安装他们自己的转发器(forwarder),请参看"man sshd"。l PasswordAuthentication yes把这个选项设置为"no"只允许用户用基于密匙的方式登录。这当然会给那些经常需要从不同主机登录的用户带来麻烦,但是这能够在很大程度上提高系统的安全性。基于口令的登录方式有很大的弱点。l # Subsystem /usr/local/sbin/sftpd把最前面的#号去掉并且把路径名设置成"/usr/bin/sftpserv",用户就能使用"sftp"(安全的FTP)了(sftpserv在sftp 软件包中)。因为很多用户对FTP比较熟悉而且"scp"用起来也有一些麻烦,所以"sftp"还是很有用的。而且2.0.7版本以后的图形化的ftp工具"gftp"也支持"sftp"。拷贝文件用"scp"拷贝文件SSH提供了一些命令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个"scp"命令。假定你想把本地计算机当前目录下的一个名为"dumb"的文件拷贝到远程服务器www.foobar.com上你的家目录下。而且你在远程服务器上的帐号名为"bilbo"。可以用这个命令:scp dumb bilbo@www.foobar.com:.把文件拷贝回来用这个命令:scp bilbo@www.foobar.com:dumb ."scp"调用SSH进行登录,然后拷贝文件,最后调用SSH关闭这个连接。如果在你的"~/.ssh/config"文件中已经为www.foobar.com做了这样的配置:Host *fbcHostName www.foobar.comUser bilboForwardAgent yes那么你就可以用"fbc"来代替"bilbo@www.foobar.com",命令就简化为"scp dumb fbc:."。"scp"假定你在远程主机上的家目录为你的工作目录。如果你使用相对目录就要相对于家目录。用"scp"命令的"-r"参数允许递归地拷贝目录。"scp"也可以在两个不同的远程主机之间拷贝文件。有时候你可能会试图作这样的事:用SSH登录到www.foobar.com上之后,输入命令"scp [local machine]:dumb ."想用它把本地的"dumb"文件拷贝到你当前登录的远程服务器上。这时候你会看到下面的出错信息:ssh: secure connection to [local machine] refused之所以会出现这样的出错信息是因为你运行的是远程的"scp"命令,它试图登录到在你本地计算机上运行的SSH服务程序……所以最好在本地运行"scp"除非你的本地计算机也运行SSH服务程序。用"sftp"拷贝文件如果你习惯使用ftp的方式拷贝文件,可以试着用"sftp"。"sftp"建立用SSH加密的安全的FTP连接通道,允许使用标准的ftp命令。还有一个好处就是"sftp"允许你通过"exec"命令运行远程的程序。从2.0.7版以后,图形化的ftp客户软件"gftp"就支持"sftp"。如果远程的服务器没有安装sftp服务器软件"sftpserv",可以把"sftpserv"的可执行文件拷贝到你的远程的家目录中(或者在远程计算机的 $PATH环境变量中设置的路径)。"sftp"会自动激活这个服务软件,你没有必要在远程服务器上有什么特殊的权限。用"rsync"拷贝文件"rsync" 是用来拷贝、更新和移动远程和本地文件的一个有用的工具,很容易就可以用"-e ssh"参数和SSH结合起来使用。"rsync"的一个优点就是,不会拷贝全部的文件,只会拷贝本地目录和远程目录中有区别的文件。而且它还使用很高效的压缩算法,这样拷贝的速度就很快。用"加密通道"的ftp拷贝文件如果你坚持要用传统的FTP客户软件。SSH可以为几乎所有的协议提供"安全通道"。FTP是一个有一点奇怪的协议(例如需要两个端口)而且不同的服务程序和服务程序之间、客户程序和客户程序之间还有一些差别。实现"加密通道"的方法是使用"端口转发"。你可以把一个没有用到的本地端口(通常大于)设置成转发到一个远程服务器上,然后只要连接本地计算机上的这个端口就行了。有一点复杂是吗?其实一个基本的想法就是,转发一个端口,让SSH在后台运行,用下面的命令:ssh [user@remote host] -f -L :[remote host]: tail -f /etc/motd接着运行FTP客户,把它设置到指定的端口:lftp -u [username] -p localhost当然,用这种方法很麻烦而且很容易出错。所以最好使用前三种方法。用SSH设置"加密通道""加密通道"的基础知识SSH 的"加密通道"是通过"端口转发"来实现的。你可以在本地端口(没有用到的)和在远程服务器上运行的某个服务的端口之间建立"加密通道"。然后只要连接到本地端口。所有对本地端口的请求都被SSH加密并且转发到远程服务器的端口。当然只有远程服务器上运行SSH服务器软件的时候"加密通道"才能工作。可以用下面命令检查一些远程服务器是否运行SSH服务:telnet [full name of remote host] 如果收到这样的出错信息:telnet: Unable to connect to remote host: Connection refused就说明远程服务器上没有运行SSH服务软件。端口转发使用这样的命令语法:ssh -f [username@remote host] -L [local port]:[full name of remote host]:[remote port] [some command]你不仅可以转发多个端口而且可以在"~/.ssh/config"文件中用"LocalForward"设置经常使用的一些转发端口。为POP加上"加密通道"你可以用POP协议从服务器上取email。为POP加上"加密通道"可以防止POP的密码被网络监听器(sniffer)监听到。还有一个好处就是SSH的压缩方式可以让邮件传输得更快。假定你在pop.foobar.com上有一个POP帐号,你的用户名是"bilbo"你的POP口令是"topsecret"。用来建立SSH"加密通道"的命令是:ssh -f -C bilbo@pop.foobar.com -L :pop.foobar.com: sleep 5(如果要测试,可以把"sleep"的值加到)。运行这个命令之后会提示你输入POP口令:bilbo@pop.foobar.com's password:输入口令之后就可以用"telnet"连接到本地的转发端口了。telnet localhost 你会收到远程mail服务器的"READY"消息。当然,这个方法要求你手工输入所有的POP命令,这是很不方便的。可以用Fetchmail(参考how to configure Fetchmail)。Secure POP via SSH mini-HOWTO、man fetchmail和在"/usr/doc/fetchmail-[…]"目录下的Fetchmail的FAQ都提供了一些具体的例子。请注意IMAP协议使用的是不同的端口:IMAP v2的端口号为而IMAP v3的端口号为。为X加上"加密通道"如果你打算在本地计算机上运行远程SSH服务器上的X程序,那么登录到远程的计算机上,创建一个名为"~/.ssh/environment"的文件并加上这一行:XAUTHORITY=/home/[remote user name]/.Xauthority(如果在远程主机上你的家目录下不存在".Xauthority"这个文件,那么当用SSH登录的时候就会自动创建)。比如启动一个X程序(xterm)可以这个命令:ssh -f -X -l [remote user name] [remote machine] xterm这将在远程运行xterm这个程序。其它的X程序也是用相同的方法。为linuxconf加上"加密通道"Linuxconf( --exec [link_command] linuxconf --guiproto如果你想在两台计算机之间用加密的方式传送信息,那么最好用ssh。命令是:remadmin --exec ssh -l [account] linuxconf --guiproto这是非常有效的而且运行用图形界面管理计算机。这种方法需要在客户端安装linuxconf。其它的方法还有直接登录到服务器上用"XForwarding"或字符界面运行linuxconf。为Webmin加上"加密通道"Webmin( -f -l [remote user name] [remote host] -L :[remote host]: tail -f /etc/motd把浏览器指向 SA and LSTB /"。中文版版权归译者brimmer(brimmer@linuxaid.com.cn)和www.linuxaid.com.cn站点所有。本文遵循Open Content Public Licence。

推荐整理分享SSH使用指南(ssh用法及命令),希望有所帮助,仅作参考,欢迎阅读内容。

SSH使用指南(ssh用法及命令)

文章相关热门搜索词:ssh命令使用方法,ssh用法及命令,ssh用法及命令,ssh命令如何使用,ssh使用教程,ssh工具如何使用,ssh 使用,ssh 使用,内容如对您有帮助,希望把文章链接给更多的朋友!

SSH客户端之SSH Secure Shell 的连接方法 1、运行环境WINDOWS下安装SSH客户端,名字是SSHSecureShellClient-3.2.9.exe,可以到

kill命令的使用 由于职责的要求,你不得不费力地阅读那些令你感到费解的晦涩的Linux应用程序的说明文件。然后,你将运行指令和编辑设置文件。一切都在正常运行,

Linux用户进程是如何释放内存的 Linux用户进程是如何释放内存的Linux进程使用内存的基本流程:从图中我们可以看出,进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而

标签: ssh用法及命令

本文链接地址:https://www.jiuchutong.com/biancheng/366265.html 转载请保留说明!

上一篇:在UNIX或Linux中TTY是什么意思(unix2dos linux实现)

下一篇:SSH客户端之SSH Secure Shell 的连接方法(ssh客户端软件)

  • 土地增值税扣除成本
  • 一般纳税人收到专票怎么认证
  • 所得税多交退税分录
  • 发票的规格和型号有哪些
  • 个人保险发票能抵扣个税
  • 坏账准备的账务处理怎么理解
  • 发行股票所支付的手续费计入
  • 企业接受基金投资的规定
  • 离职补偿金公司不付怎么办
  • 实收资本弥补亏损账务处理
  • 6月份税务新政热点问题有哪些?
  • 商票背书需要对方开发票吗
  • 小规模纳税人自己可以开专票吗
  • 库存暂估入账
  • 更改代理设置失败 可能无网络连接
  • 往来账会计怎么做
  • 缴纳人身意外保险凭证是什么
  • 结转采购材料的实际成本会计分录怎么写
  • 打样费入什么科目
  • 京东预付卡怎么做账
  • 如何设置鼠标移过超链接
  • php解密在线
  • 营改增餐饮行业纳税规则
  • deepin下载教程
  • 出租的土地
  • 存货包括生产成本,在资产负债表中表示
  • mouse.exe在哪个文件夹
  • php批量发送邮件
  • 应收款减少怎么做账
  • 企业注销清算流程
  • 分配税后利润会计分录
  • 改征增值税是什么意思
  • 资产负债表日后期间是指
  • php7.0新特性
  • vue二级菜单的隐藏与显示
  • 常见反爬策略
  • 买货没发票如何入账?
  • 采购的技术服务费需入库吗
  • 文化事业建设费税收优惠2023
  • 织梦如何使用
  • php的do while语句
  • 个体户跨季领取发票流程
  • 收伙食费入什么科目
  • 交易性金融资产公允价值变动怎么算
  • 个人转让房产税率
  • 企业所得税税款可以税前扣除吗
  • 企业弥补亏损的会计分录
  • 本月收入未开票会计分录
  • 红冲去年的成本怎么做账
  • 机票会计代理如何做
  • 应收账款期末余额为负数表示什么
  • 没有计提坏账准备的情况下,应收账款的计税基础
  • 资本金利润率正常范围
  • 法院去单位直接扣划单位薪酬
  • 进项税额增值税专用发票
  • 贷款服务的利息怎么算
  • 增值税专用发票丢了怎么补救
  • 支付残疾人保证金的现金流
  • 租房发票如何做分录
  • 建筑企业工程施工科目怎么结转
  • 年终奖和工资一起发吗
  • 委托设置什么意思
  • mysql详细教程
  • MySQL 与 Elasticsearch 数据不对称问题解决办法
  • 如何找回丢失数据
  • QQExternal.exe是什么进程?QQExternal.exe进程为什么被运行?
  • win102020h2版本
  • win7系统怎么卸载显卡驱动
  • win10系统自带浏览器在哪里
  • win7怎么取消开机选择系统
  • 认识 认知
  • 不宜用于
  • jquery写入json文件
  • 仿真安卓
  • node 开发
  • 详解Python装饰器由浅入深
  • 税务总局33号公告
  • 深圳市的各区域排名
  • 中国移动的电子协议推送服务是什么
  • 打税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设