⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0310telnetssh.htm

📁 鸟哥的linux私房菜
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<table class="term"><tr><td class="term"><pre>
<span class=term_hd>1. 直接登入到对方主机的方法∶</span>
[root@linux ~]# <span class=term_command>ssh account@hostname</span>
<span class=term_say># 连接到我们自己本机上面的 ssh 服务!更多讯息,请 man ssh 喔!</span>
[root@linux ~]# <span class=term_command>ssh dmtsai@localhost</span>
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is f8:ae:67:0e:f0:e0:3e:bb:d9:88:1e:c9:2e:62:22:72.
Are you sure you want to continue connecting (yes/no)? <span class=term_command>yes</span>
<span class=term_say># 上面很重要喔!务必填入完整的 "yes" 而不是 Y 或 y 而已。</span>
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
dmtsai@localhost's password: <span class=term_say>&lt;== 在这里填入密码,同样的,萤幕不会有讯息的!</span>
Last login: Fri Jul  1 14:23:27 2005 from localhost.localdomain
[dmtsai@linux ~]$      <span class=term_say>&lt;== 瞧!已经登入棉~</span>
[dmtsai@linux ~]$ <span class=term_command>exit</span> <span class=term_say>&lt;== 输入 exit 就能够离开对方主机棉!</span>

<span class=term_hd>2. 不登入对方主机,直接在对方主机执行指令的方法∶</span>
[root@linux ~]# <span class=term_command>ssh dmtsai@localhost date</span>
dmtsai@localhost's password:
Tue Nov 22 11:57:27 CST 2005
[root@linux ~]# 
<span class=term_say># 看!身份还是 root 喔!只是以 dmtsai 的身份在远端主机上执行了一个指令而已!</span>
</pre></td></tr></table>

			这里请特别留意的是,如果直接以『 <span class=text_import2>ssh hostname</span>
			 』这个指令来连接进入 hostname 这个主机时,则<span class=text_import2>进入 hostname 
			这个主机的『帐号名称』将会是目前您所在的这个环境当中的使用者帐号!</span>
			以上面为例,因为我是以 root 的身份在执行,所以如果我执行了『 ssh host.domain.name 』时,
			那么对方 host.domain.name 这部主机,就会以 root 的身份来让我进行密码确认的登入动作!<br /><br />

			因此,为了避免这样的麻烦,通常鸟哥都是以简单的 e-mail 的写法来登入远方的主机,
			例如『<span class=text_import2>ssh user@hostname </span>』即表示,
			鸟哥是以 user 这个帐号去登入 hostname 这部主机的意思。当然,也可以使用 
			-l username 这样的形式来书写!登入对方主机之后,其他的所有执行行为都跟在
			Linux 主机内没有两样~所以,真的是很简单吧! ^_^ 这样就可以达到远端控管主机的目的了!<br /><br />

			此外,<span class=text_import2>在预设的情况下, SSH 是『允许您以 root 的身份登入』喔</span>
			!呵呵!更是爽快啦!要特别留意的是,当您要连接到对方的主机时,如果是首次连接,那么
			Server 会问您,您的连线的 Key 尚未被建立,要不要接受 Server 传来的 Key
			,并建立起连线呢?呵呵!这个时候请『<span class=text_import2>务必要输入 yes
			而不是 y 或 Y</span>』,这样程式才会接受喔!<br /><br />

			<li><span class=text_import1>关于 Server Keys 的纪录资料∶ ~/.ssh/known_hosts</span></li>
			<div class=block2>
			如果您刚刚有研究过 SSH 的连线流程的话,会发现到当 client 端接受来自 server 端的 
			public key 之后,会主动的比对这支 Key 的正确性。而比对的档案是 ~/.ssh/known_hosts 。
			若是接受到的这支 public key 并没有被纪录在这档案内,那么上面表格的讯息,
			就是要您回答 yes/no 的那个讯息才会出现~而您回答 yes 之后,该 public key 
			资讯就会被记录起来,以留待下次登入同一部主机时的检查之用啊!
			<span class=text_import2>如果 Server Key 与 ~/.ssh/known_hosts 比对成功,
			那么您就会直接进入等待密码输入的画面,</span>
			那就不必每次都得要输入 (yes/no) 棉~<br /><br />

			不过,您或许也会发现一件事情啊,我们知道 SSH server 虽然使用 version 2 已经不会重复制造 
			server key (public key) 了,但是如果该主机重新安装过新的 linux distributions 时,
			那把 server key 就会被改变啊!而 client 又会去比对这个 public key 与 ~/.ssh/known_hosts ,
			此时 Client 就会发现两者不同了,于是乎产生如下的错误讯息了∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ssh dmtsai@localhost</span>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
f8:ae:67:0e:f0:a0:3e:aa:d9:77:19:c9:2e:62:22:72.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.
</pre></td></tr></table>

			这个错误讯息在告诉您,上次所登录的远端 SSH 主机的 Keys 
			已经被改过了(最可能的原因就是 Server 端重新开机/重新安装/更新套件等等啦!),
			所以无法继续登入~呵呵!这个时候怎么办?很简单啊!<span class=text_import2>进入您的家目录的
			~/.ssh 里面,编辑一下 known_hosts ,将欲连接的主机名称的 Key 给他消除</span>,就可以重新连线啦!<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi ~/.ssh/known_hosts</span>
localhost ssh-rsa AAAAB3NzaC1yc2Euowireffodjoiwjefmoeiwhoqhwupoi
t[egmlomowimvoiweo6VpTHTw2/tENp4U7Wn8J6nxYWP36YziFgxtWu4MPSKaRmr
E4eUpR1G/zV3TkChRZY5hGUybAreupTVdxCZvJlYvNiejfijoejwiojfijeoiwx5
eRkzvSj7a19vELZ5f8XhzH62E=
</pre></td></tr></table>

			上面表格的内容其实是同一行的~那一行代表『 localhost 这部主机,利用的是 ssh-rsa 连线机制,
			而后续的资料则是那把 Server Key 的内容。』如果您确定这次的比对无法成功是正常的,
			那么您可以将这一行给他删除,这样下次要再登入时,就又会再次的出现问 (yes/no) 的画面啊!<br /><br />
			</div>
		</div>

		<li><a name="ssh_client_sftp"></a><span class=text_import1>Linux Client: sftp</span></li>
		<div class=block2>
			那么如何使用 SSH FTP 的功能呢?也是很容易啦!就是使用
			sftp 这支程式即可!而登入的方式与 ssh 相同,都是使用 sftp -l username hostname
			或者直接以 sftp user@hosname 来书写!执行之后会有底下的模样∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>sftp dmtsai@localhost</span>
Connecting to localhost...
dmtsai@localhost's password: <span class=term_say>&lt;== 这里请输入密码啊!</span>
sftp> <span class=term_say>&lt;== 这里就是在等待您输入 ftp 相关指令的地方了!</span>
</pre></td></tr></table>

			进入到 sftp 之后,那就跟在一般 FTP 模式下的操作方法没有两样了!底下我们就来谈一谈,
			sftp 这个介面下的使用指令吧!<br /><br />

			<table width=90% bgcolor=lightyellow cellspacing=0 cellpadding=5 border=1>
			<tr bgcolor=lightblue><td colspan=2>针对远方主机(Server)之行为</td></tr>
			<tr><td width=40%>变换目录到 /etc/test 或其他目录</td>
				<td><font face="细明体">cd /etc/test<br />cd PATH</font></tr>
			<tr><td>列出目前所在目录下的档名</td>
				<td><font face="细明体">ls<br />dir</font></tr>
			<tr><td>建立目录</td>
				<td><font face="细明体">mkdir directory</font></tr>
			<tr><td>删除目录</td>
				<td><font face="细明体">rmdir directory</font></tr>
			<tr><td>显示目前所在的目录</td>
				<td><font face="细明体">pwd</font></tr>
			<tr><td>更改档案或目录群组</td>
				<td><font face="细明体">chgrp groupname PATH</font></tr>
			<tr><td>更改档案或目录拥有者</td>
				<td><font face="细明体">chown username PATH</font></tr>
			<tr><td>更改档案或目录的权限</td>
				<td><font face="细明体">chmod 644 PATH<br />其中,644 与权限有关!回去看基础篇!</font></tr>
			<tr><td>建立连结档</td>
				<td><font face="细明体">ln oldname newname</font></tr>
			<tr><td>删除档案或目录</td>
				<td><font face="细明体">rm PATH</font></tr>
			<tr><td>更改档案或目录名称</td>
				<td><font face="细明体">rename oldname newname</font></tr>
			<tr><td>离开远端主机</td>
				<td><font face="细明体">exit (or) bye (or) quit</font></tr>
			<tr bgcolor=lightblue><td colspan=2>针对本机(Client)之行为(都加上 l, L 的小写 )</td></tr>
			<tr><td>变换目录到本机的 PATH 当中</td>
				<td><font face="细明体">lcd PATH</font></tr>
			<tr><td>列出目前本机所在目录下的档名</td>
				<td><font face="细明体">lls</font></tr>
			<tr><td>在本机建立目录</td>
				<td><font face="细明体">lmkdir</font></tr>
			<tr><td>显示目前所在的本机目录</td>
				<td><font face="细明体">lpwd</font></tr>
			<tr bgcolor=lightblue><td colspan=2>针对资料上传/下载的行为</td></tr>
			<tr><td>将档案由本机上传到远端主机</td>
				<td><font face="细明体">put [本机目录或档案] [远端]<br />
				put [本机目录或档案]<br />
				如果是这种格式,则档案会放置到目前远端主机的目录下!</font></tr>
			<tr><td>将档案由远端主机下载回来</td>
				<td><font face="细明体">get [远端主机目录或档案] [本机]<br />
				get [远端主机目录或档案]<br />
				若是这种格式,则档案会放置在目前本机所在的目录当中!可以使用万用字元,例如∶<br />
				get *<br />get *.rpm<br />亦是可以的格式!</font></tr>
			</table><br />

			就整体而言, sftp 在 Linux 底下,如果不考虑图形介面,那么他已经可以取代
			FTP 了呢!因为所有的功能都已经涵盖啦!因此,在不考虑到图形介面的 FTP 软体时,可以直接关掉
			FTP 的服务,而改以 sftp-server 来提供 FTP 的服务吧! ^_^<br /><br />
		</div>

		<li><a name="ssh_client_scp"></a><span class=text_import1>Linux Client: scp</span></li>
		<div class=block2>
			如果我要在两个主机之间复制档案的话,除了 sftp 之外,还有没有更简单的方式?
			有的,那就是利用 scp 这个指令啦!这个指令的用法与 cp 很相像,不过,
			在远端主机的目录写法,比较需要注意就是了。举例如下∶<br />

<table class="term"><tr><td class="term"><pre>
<span class=term_hd>1. 将资料由本机上传到远端主机上去</span>
[root@linux ~]# <span class=term_command>scp /etc/crontab dmtsai@localhost:/home/dmtsai/</span>
dmtsai@localhost's password: <span class=term_note>&lt;== 这里请输入密码啊!</span>
crontab                  100%  620     0.6KB/s   00:00
<span class=term_say># 这个例子在说明,我将本机目录的 /etc/crontab 这个档案传送给 dmtsai 
# 这个使用者,而这个使用者是在 "localhost" 那部主机上面喔!
# 仔细看一下,会有一个传输资料的讯息跑出来喔!</span>

<span class=term_hd>2. 将资料由远端主机下载到本机上!</span>
[root@linux ~]# <span class=term_command>scp dmtsai@localhost:~/.bashrc .</span>
<span class=term_say># 这个例子则是在说明,我要将 localhost 那部机器上的 dmtsai 这个人,
# 他家目录下的 .bashrc 复制到我的机器上!</span>
</pre></td></tr></table>

			也就是说,远端主机上的档案或目录要复制时,是以『 <span class=text_import2>hostname:PATH</span> 』
			方式来书写的~不要写错了呦!而如果想要复制目录的话,那么可以加上 -r 的参数!<br /><br />
		</div>

		<li><a name="ssh_client_putty"></a><span class=text_import1>Windows Client: putty</span></li>
		<div class=block2>
			在 Linux 底下想要连接 SSH 伺服器,可以直接利用 <a href="#ssh_client_ssh">ssh</a> 这个指令
			,那么如果在 Windows 作业系统底下,又该如何连接到 SSH 伺服器呢?可以直接使用
			putty 或 pietty 这种类型的连线软体呢,他也是免费的自由软体喔!取得的方式可以参考底下的网站∶

			<ul><li>putty 官方网站∶<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" 
				target="_blank">http://www.chiark.greenend.org.uk/~sgtatham/putty/</a>
			<li>pietty 官方网站∶<a href="http://www.csie.ntu.edu.tw/~piaip/pietty/"
				target="_blank">http://www.csie.ntu.edu.tw/~piaip/pietty/</a></ul>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -