为您找到与linux不能远程登录相关的共200个结果:
这篇文章主要介绍了Linux的远程登录方法和无密码登录方法,以及一些远程登录的常见问题和sshd_config中文注释,需要的朋友可以参考下。
一、远程登录方法
SSH 是一种安全通道协议 , 主要用来远程登录。在 RHEL 5 系统中使用的是 OpenSSH 服务器由 openssh , openssh-server 等软件包提供的 ( 默认已经安装 ) ,并以将 sshd 添加为标准的系统服务。 使用方法如下:
复制代码代码如下:
$ ssh host
$ ssh username@host
$ ssh -p 222 username@host
-p: 指定访问端口 ; 如果省略该参数 , 则默认访问 SSH 服务的默认端口 22;
如果是第一次登录对方主机 , 则系统会出现一下提示 :
复制代码代码如下:
The authenticity of host 'host(192.168.0.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?
这段话是说,无法确认 host 主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?
输入 yes 之后,系统会出现一句提示,表示 host 主机已经得到认可。
复制代码代码如下:Warning: Permanently added 'host, 192.168.0.21 ' (RSA) to the list of known hosts.
然后要求输入密码:
复制代码代码如下:
$ Password: (enter password)
此时,如果秘密正确,就可以登录了。
二、无密码登录方法
在信任环境下,如果每次远程登录时,都要输入密码,感觉太浪费时间了,尤其是密码很复杂、维护的服务器比较多的情况下。
于是有了正常需求:不用输入密码即可实现远程登录。
实现步骤如下:
1 、本地生成 一对秘钥文件 ( 公钥和私钥 ) ;
复制代码代码如下:
$ ssh-keygen
# 以上命令等价于 ssh-keygen -t rsa
#-t: 指定密钥的类型 , 默认为 SSH-2 的 rsa 类型 ;
运行上面的命令后,系统会出现一系列提示,可以一路回车。 特别说明 ,其中有一个问题是, 要不要对私钥设置口令( passphrase ) ,如果担心私钥的安全,可以设置一个。运行结束以后,会在 ~/.ssh/ 目录下新生成两个文件: id_rsa.pub 和 id_rsa 。前者公钥,后者是私钥。
2 、将公钥传送到远程主机 host 上面 ;
复制代码代码如下:$ ssh-copy-id user@host
经过以上两步之后,就可以实现无密码远程登录了 ( 远程主机将用户的公钥保存在 ~/.ssh/authorized_keys 文件中 ) 。
三、常见问题:
1、 生成密钥并上传至远程主机后,仍然无法实现无密码登录?
打开远程主机的 /etc/ssh/sshd_config 这个文件,以下几行取消注释。
复制代码代码如下:
#RSAAuthentication=yes
#PubkeyAuthentication=yes
#AuthorizedKeysFile=.ssh/authorized_keys
然后,重启远程主机的 ssh 服务。
复制代码代码如下:
#ubuntu 系统
$ service ssh restart
#debian 系统
$ /etc/init.d/ssh restart
2 、执行 ssh-copy-id 命令时,远程服务器的 SSH 服务端口不是 22 ,如下:
复制代码代码如下:$ ssh-copy-id nameB@machineB
ssh: connect to host machineB port 22: Connection refused
则使用如下命令:
复制代码代码如下:
$ ssh-copy-id "-p 22000 nameB@machineB"
四、补充内容:
复制代码代码如下:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.2
$ ssh-copy-id -u eucalyptus -i /home/ eucalyptus/.ssh/id_rsa.pub eucalyptus@remote_host
#-u : 给 eucalyptus 用户 设置 无密码登陆
# -i : 当没有值传递时或 ~/.ssh/identity.pub 文件不可访问 ( 不存在 ) ,ssh-copy-id 将显示 如下错误
/usr/bin/ssh-copy-id: ERROR: No identities found
SSH 提供两种方式的登录验证:
1 、密码验证:以服务器中本地系统用户的登录名称,密码进行验证。
2 、秘钥对验证:要求提供相匹配的秘钥信息才能通过验证。通常先在客户机中创建一对秘钥文件 ( 公钥和私钥 ) ,然后将公钥文件放到服务器中的指定位置。
注意:当密码验证和私钥验证都启用时,服务器将优先使用秘钥验证。
五、SSH服务的配置文件 :
sshd 服务的配置文件默认在 /etc/ssh/sshd_config ,正确调整相关配置项,可以进一步提高 sshd 远程登录的安全性。
配置文件的内容可以分为以下三个部分:
复制代码代码如下:
#SSH服务器监听的选项
#监听的端口
Port 22
#使用SSH V2协议
Protocol 2
#监听的地址为所有地址
ListenAdderss 0.0.0.0
#https://禁止DNS反向解析
UseDNS no
#用户登录控制选项
#是否允许root用户登录
PermitRootLogin no
#是否允许空密码用户登录
PermitEmptyPasswords no
#登录验证时间(2分钟)
LoginGraceTime 2m
#最大重试次数
MaxAuthTries 6
#只允许user用户登录,与DenyUsers选项相反
AllowUsers user
#登录验证方式
#启用密码验证
PasswordAuthentication yes
#启用秘钥验证
PubkeyAuthentication yes
#指定公钥数据库文件
AuthorsizedKeysFile .ssh/authorized_keys
查看 SSH 服务状态命令: /etc/init.d/sshd status
重新启动 SSH 服务命令: /etc/init.d/sshd restart
查看 ssh 软件的版本号命令: $ ssh -V
OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 # 表明该系统正在使用 OpenSSH
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu # 表明该系统正在使用 SSH2
当远程主机的公钥被接受以后,它就会被保存在文件 $HOME/.ssh/known_hosts 之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。
每个 SSH 用户都有自己的 known_hosts 文件,此外系统也有一个这样的文件,通常是 /etc/ssh/ssh_known_hosts ,保存一些对所有用户都可信赖的远程主机的公钥。
浏览量:2
下载量:0
时间:
一些用户想通过Linux系统进行远程登录或者无密码登录,所以读文网小编这里就针对这类用户推荐个Linux远程登录和无密码登录的方法给大家:
在信任环境下,如果每次远程登录时,都要输入密码,感觉太浪费时间了,尤其是密码很复杂、维护的服务器比较多的情况下。
于是有了正常需求:不用输入密码即可实现远程登录。
实现步骤如下:
1 、本地生成 一对秘钥文件 ( 公钥和私钥 ) ;
代码如下:
$ ssh-keygen
# 以上命令等价于 ssh-keygen -t rsa
#-t: 指定密钥的类型 , 默认为 SSH-2 的 rsa 类型 ;
运行上面的命令后,系统会出现一系列提示,可以一路回车。 特别说明 ,其中有一个问题是, 要不要对私钥设置口令( passphrase ) ,如果担心私钥的安全,可以设置一个。运行结束以后,会在 ~/.ssh/ 目录下新生成两个文件: id_rsa.pub 和 id_rsa 。前者公钥,后者是私钥。
2 、将公钥传送到远程主机 host 上面 ;
代码如下:
$ ssh-copy-id user@host
经过以上两步之后,就可以实现无密码远程登录了 ( 远程主机将用户的公钥保存在 ~/.ssh/authorized_keys 文件中 ) 。
浏览量:2
下载量:0
时间:
相比window来说linux远程桌面登陆需要第三方软件来实现,之前用ssh登陆的都是字符界面;昨天试了试远程桌面也是可以的,方法很多,这儿只阐述比较好用的一种;使用时,关闭windows防火墙,或者开启相应的防火墙端口;这里使用的是Xmanager来实现远程桌面登陆,Xmanager是一个非常优秀好用的软件,自带了好多工具;
下载安装Xmanager 3.0,打开桌面上Xmanager的文件夹,里边能看到好多工具;下面就由读文网小编为大家介绍下LINUX操作系统如何远程登录桌面吧。
使用里边的Xbrowser来实现linux远程桌面登陆,双击该图标出现界面;
左侧双击选项“Dynamic”,选择“XDMCP”项,下一步;
点击“Next”之后,Method项“默认”即可,然后在Host项输入需要登陆的linux的IP地址,点击“Next”(端口默认即可);
然后X Server Profile 这里默认即可;
然后点击“Next”,这里会出现Name项实质上就是一个名字,默认即可(也可以自己命名),点击“Finish”;
完成之后,在右侧会出现一个图标,双击它等待片刻就会出现linux登陆界面了;
出现的linux登陆界面;
输入用户名/密码就能登陆到远程linux上了,这样linux也能像windows一样能远程桌面化了;
需要注意的一些问题,如果出现无法登陆的情况,可能是windows本身防火墙造成的或者是远程机器上的linux服务器上的对应端口没有开启,需要开启对应防火墙端口。
浏览量:3
下载量:0
时间:
TP-link联普是现在很多家庭在使用的一个路由器品牌,那么你知道联普路由器为什么不能登陆tplogin.cn吗?下面是读文网小编整理的一些关于联普路由器为什么不能登陆tplogin.cn的相关资料,供你参考。
在浏览器中输入:tplogin.cn后,如果进不了设置登录页面,原因有以下几种:
1、TP-Link路由器连接问题;
2、电脑IP地址设置问题;
3、路由器与光猫IP冲突
4、网线问题
5、浏览器问题
6、路由器问题
进不了tplogin.cn登录页面
一、TP-Link路由器连接问题
1、宽带是电话线接入时:
请准备2根较短的网线,TP-Link路由器的WAN口用网线连接宽带猫(ADSL Modem )。电脑用网线连接到TP-Link路由器1、2、3、4接口中任意一个,连接方式如下图所示:
宽带是电话线接入时,路由器的正确连接方式
2、宽带是光纤接入时:
请准备2根网线,TP-Link路由器的WAN口用网线连接光猫。电脑用网线连接到TP-Link路由器1、2、3、4接口中任意一个,连接方式如下图所示:
宽带是光纤接入时,路由器的正确连接方式
3、宽带是入户网线接入时:
把运营商提供的入户网线连接到TP-Link路由器的WAN口。电脑用网线连接到TP-Link路由器1、2、3、4接口中任意一个,连接方式如下图所示:
宽带是入户网线接入时,路由器的正确连接方式
温馨提示:
(1)、按照上面的方式连接TP-Link无线路由器后,电脑暂时就不能上网了,当路由器完成上网设置后,电脑自动就可以上网了,不再需要使用电脑上的“宽带连接”来拨号上网了。
(2)、在设置路由器的时候,是不需要电脑有网的,只要用网线连接电脑与路由器的LAN 口,就可以进行设置了;很多新手用户,认为一定要有网,才能设置路由器,这是错误的。
(3)、请严格按照上面的连接方式进行连接,不要自作聪明,更改TP-Link路由器的连接方式!
二、电脑IP地址设置问题
要进入tplogin.cn登录页面,还需要把电脑中,本地连接(以太网)中的IP地址,设置为自动获得(动态IP),如下图所示。
把IP地址设置为自动获得
三、路由器与光猫IP冲突
如果在浏览器中输入:tplogin.cn后,出现的是中国电信、中国联通的光猫的登录页面,如下图所示。这种情况是因为TP-Link路由器的IP地址与光猫的IP地址冲突了引起的,需要修改路由器的IP地址来解决。
输入tplogin.cn后,出现中国电信/联通登录页面
四、网线问题
1、检查下电脑与TP-Link路由器之间的网线是否插好,检查下有没有松动,检查下网线的水晶头是否有损坏。
2、如果有多的网线,请换一个网线,然后再测试
检查、更换网线
五、浏览器问题
1、如果浏览器中设置了IP代理,请先关闭浏览器中的代理设置,再清理浏览器的缓存,然后在试一下,看能否打开tplogin.cn登录页面。
2、如果电脑上安装了多个浏览器,请换一个浏览器进行测试。
检查浏览器设置,或者换一个浏览器测试
六、路由器问题
1、重启路由器
路由器运行时间长了,会出现死机等问题,这时候也会造成无法登录到tplogin.cn页面。解决办法是断电重启,拔掉TP-Link路由器的电源,过一会再接通电源,然后再试一下看能否打开tplogin.cn登录页面。
2、把路由器恢复出厂设置
在TP-Link路由器的机身上有一个复位按钮,一般标注的是:RESET、Reset、WPS/RESET等等(不同型号的TP-Link路由器中,复位按钮标注得不一样),如下图所示;请在你的TP-Link路由器机身中注意查看。
在TP-Link路由器接通电源的情况下,一直按住复位按钮不松开;然后观察TP-Link路由器上的指示灯,当所有指示灯熄灭并重新闪烁的时候,表示恢复出厂设置成功,正在重启路由器,这时候可以松开复位按钮了。
按住复位按钮,把TP-Link路由器恢复出厂设置
3、换路由器
如果执行完上诉所有操作后,还是进不了tplogin.cn登录页面;这种情况下,多半是这台TP-Link路由器有问题了,建议更换一台路由器,然后设置其连接宽带上网。
温馨提示:
有些用户说,这台TP-Link路由器是新买的呀,怎么会有问题呢?对于这个问题,我只想说新买的路由器也会出现问题,不能使用的情况是存在的;因为电子产品在出厂的时候,是有一个故障率存在的,无线路由器也不例外的,且小编之前就遇到过这样的情况的。
看过文章“联普路由器为什么不能登陆tplogin.cn登录"
浏览量:0
下载量:0
时间:
思科cisco公司已成为公认的世界网络互联解决方案的领先厂商,该公司出产的一系列路由器更是引领世界,那么你知道cisco如何远程AUX口登录吗?下面是读文网小编整理的一些关于cisco如何远程AUX口登录的相关资料,供你参考。
1 功能需求及组网说明
通过AUX口远程登录交换机
『配置环境参数』
1.交换机通过电话号码82882285连接到PSTN
2.PC通过电话号码82882275连接到PSTN
3.目前的命令行配置的交换机console口和aux口是合二为一的
4.连接交换机和modem要采用专用的aux线缆
5.modem要设置成自动应答方式
『组网需求』
1.PC远程拨号,通过交换机AUX口(即console口)登录到交换机进行配置
2 数据配置步骤
『PC拨入交换机流程』
将交换机AUX口配置成MODEM属性,因为交换机console和AUX口合二为一,需要注意配置MODEM属性以后,在本地使用串口线将无法对交换机进行操作。在远端PC超级终端上输入命令及电话号码登录交换机。
【AUX口远程拨号配置】
1.进入用户界面视图
[Quidway] user-interface aux 0
2.将AUX口配置MODEM拨号属性
[Quidway-ui-aux0]modem
3 测试验证
1.物理连接后在PC上启用超级终端, PC上的com端口选择和modemA相连的com口
2.在超级终端屏幕上键入命令 atdt 82882285(与交换机modemB的电话号码)
3.回车,出现交换机提示符例如
4.可以在超级终端上进行操作
看过文章“cisco如何远程AUX口登录”
浏览量:2
下载量:0
时间:
Linux下的主机名是基于预定义的,也就是说必须依赖某种文件或者服务来查询.那么你知道linux如何远程获取操作系统版本和主机名吗?下面跟着读文网小编一起来了解一下吧。
远程获取windows和linux操作系统版本和主机名需要具备以下条件:
假设
主机A(windows 7),ip:192.168.12.2
主机B(centos 6.3),ip:192.168.12.3
主机C(windows 2008)-为远程要获取信息的主机,ip:192.168.12.4
主机D(centos 6.3)-为远程要获取信息的主机,ip:192.168.12.5
windows:
1.主机A可以ping通主机C;
2.主机B可以ping通主机C;
3.主机B可以通过161端口通过snmp协议与主机C进行通信;
linux:
1.主机B可以ping通主机D;
2.主机B可以通过161端口通过snmp协议与主机D进行通信;
3.可通过某种方式得到主机D的共同体名;
4.使用前请掌握nagios的使用。
window信息获取方法:
获取主机名与Mac:
从A上执行
获取系统版本信息:
从B上执行
/usr/local/nagios/libexec/check_snmp -H 192.168.12.4 -C public -o sysName.0
/usr/local/nagios/libexec/check_snmp -H 192.168.12.4 -C public -o sysDescr.0
linux信息获取方法:
在B上执行
/usr/local/nagios/libexec/check_snmp -H 192.168.12.5 -C public -o sysDescr.0
看过“ linux如何远程获取操作系统版本和主机名 ”
浏览量:2
下载量:0
时间:
最近几天一直在想是不是可以通过linux远程登录windows图形界面,听一个同事说可以通过rdesktop可以实现,在网上查的资料是可以通过rdesktop访问windows远程桌面,下面跟着读文网小编一起来了解一下吧。
具体步骤:
1 rdesktop简介
rdesktop 是UNIX 和Linux 系统的一个远程桌面连接软件,它通过MicrosoftWindows NT、Windows 2000 提供的终端服务(Terminal Services)以及WindowsXP 的远程桌面服务(Remote Desktop),能在Linux系统下远程登录Windows的窗口系统并使用。
1.1 rdesktop的下载
在各种版本的RedHat Linux 系统安装盘上, 一般第三张光盘上都带有rdesktop 的可执行的RPM软件包,例如:
RedHat 8.0: rdesktop-1.1.0-2.i386.rpm
RedHat 9.0: rdesktop-1.2.0-1.i386.rpm
Fedora Core 2: rdesktop-1.3.1-3.i386.rpm
通过用 #rpm -q rdesktop 查看系统中是否已安装了rdesktop,然后安装相应的rpm 软件包。
从http://www.rpmfind.net下载rpm 软件包。
1.2 rdesktop的安装
我们还可以下载rdesktop 的源程序,在各个操作平台上编译和安装。
在shell下执行命令:
[root@www tmp] # tar xvzf rdesktop-1.4.1.tar.gz
[root@www …...] # cd rdesktop-1.4.1
[root@www …...] #./configure
[root@www …...] # make
[root@www …...] # makeinstall
安装成功后,在/usr/local/bin下生成了可执行的rdesktop 程序。
1.3 rdesktop 的使用
l 远程Windows 系统的设置
这里以连接Windows XP Professional的远程桌面服务为例。首先在WindowsXP 下启用远程桌面服务(注意,XP 的HomeEdition 没有远程桌面服务),右键点击“我的电脑”,选择“属性”,查看“远程”选项,选择“允许用户远程连接到这台计算机”即可。
l Linux 下rdesktop 的使用
rdesktop 的使用很简单,可通过#rdesktop-h得到使用的帮助。一般常用的登录命令为:
[root@www …...] # rdesktop -g 1024x768 -d 24 hostname -t 端口 -u 用户名 -p 密码
其中 “g 1024×768”设置分辨率为
1024×768,“d 24”设置真彩24 位,hostname为 Windows 机器的主机名或者IP 地址,-t端口缺省值,-f 全屏幕。在输入了Windows XP的用户名和密码后,就可以登录并操作远程的Windows系统
浏览量:2
下载量:0
时间:
在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。那么VNC怎么远程连接到Linux系统桌面?下面跟着读文网小编一起来了解一下吧。
VNC连接Linux桌面,要想连接Linux远程桌面,按照下面的步骤,非常简单、快速,Linux配置VNC(以RedHat、CentOS、Fedora系列为例)。
工具/原料
Linux平台安装VNCServer
Windows平台使用VNC-Viewer
方法/步骤
1、在Linux平台安装VNCServer服务端软件包。
#yum -y install vnc *vnc-server*
2、修改VNCServer主配置文件
#vim /etc/sysconfig/vncservers
复制最后两行并去掉行首注释符,然后修改为
VNCSERVERS=“1:root”
VNCSERVERARGS[1]=“-geometry 1024x768”
3、设置VNCServer远程连接密码
#vncpasswd
输入两次相同的密码
4、启动vncserver服务
#/etc/init.d/vncserver start
5、上一步执行完毕会在root宿主目录下生成.vnc开头的隐藏目录,该目录下面的文件就是root用户的VNC桌面配置文件。打开xstartup配置桌面
#vim /root/.vnc/xstartup
将最后一行改为
gnome &
(使用GNOME桌面)
6、开启防火墙VNCServer端口
#vim /etc/sysconfig/iptables
在“-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT”下面添加一行-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
重启iptables服务
#/etc/init.d/iptables restart
7、在Windows客户端下打开http://www.realvnc.com/,下载对应平台的VNC-Viewer客户端(该文件为绿色软件,无需安装),双击下载下来的文件即可打开
在VNC Server一栏输入
192.168.224.159:1
点击Connect,在弹出的小窗口中输入第3步设置的密码回车即可连接到远程桌面。
注意事项
注意打开防火墙端口
如果出现问题检查服务端Selinux是否关闭
上面就是VNC连接Linux远程桌面的图文教程了,如果你不知如何操作VNC,又或者对此感兴趣的话,不妨试试上面介绍的方法。
浏览量:2
下载量:0
时间:
在这个网络时代里面我们最常用来连接网络的设备就是路由器了,现在的社会不管是工作还是生活几乎都离不开网络了,同时我们也要学习一些相关的知识技能,那么你知道路由器无线桥接后不能登录副路由怎么办吗?下面是读文网小编整理的一些关于路由器无线桥接后不能登录副路由的相关资料,供你参考。
手动为设备设置IP地址(繁琐,不推荐)
从主路由获取以下信息:
主路由的LAN口IP地址
主路由的子网掩码
主路由的WAN口得到的DNS服务器地址,一共有2个
如图,以TP-LINK的路由器为例,这里比较简单,就不多介绍了
手动配置副路由的DHCP服务器(较为简单,强烈推荐)
从主路由获取以下信息;
主路由的LAN口IP地址主路由的子网掩码(又叫网络掩码,地址掩码,子网络遮罩)
主路由的WAN口得到的DNS服务器地址,一共有2个
主路由的DHCP服务器地址池(起始地址到结束地址叫做一个地址池)
如下图
开启副路由的DHCP服务器
将副路由DHCP的地址池设置成与主路由的没有交集的状态
例如主路由是192.168.1.100到192.168.1.199
那么副路由可以是192.168.1.50-192.168.1.99或者192.168.1.200-192.168.1.225
地址池租期不用更改
在副路由DHCP的网关处填写主路由的LAN口IP地址,一般都是192.168.1.1
缺省域名一栏空着
在副路由DHCP的主DNS服务器和备用DNS服务器处填写从主路由WAN口得到的DNS服务器地址
如图
路由器无线桥接后不能登录副路由的相关
浏览量:2
下载量:0
时间:
tplink是国内一流的通讯设备出厂商,随着信息技术的不断发展,新型网络业务不断涌现,这对网络运营商及设备制造商提出了极大的挑战,那么你知道tplink路由器wr700n不能登录管理员界面怎么办吗?下面是读文网小编整理的一些关于tplink路由器wr700n不能登录管理员界面的相关资料,供你参考。
无线终端在连接无线信号时,请确认连接正确的无线信号。检查电脑已经连接的无线网络名称,是否为路由器默认SSID。
路由器默认的SSID为:TP-LINK_XXXXXX(MAC地址后六位),如下图所示:
如果搜索不到自己的无线信号,可先复位路由器。
复位方法:通电状态下,使用牙签或回形针等尖端物体按住Mini路由器的Reset按钮,持续5-8秒左右,看到指示灯快闪5次就表明复位成功。此时再重新连接默认的信号名,尝试登录管理界面。
确认上网终端是通过DHCP获取IP地址,并且获取到正确的IP地址(网关IP地址为前端路由器的IP地址)。如下图所示:
尝试断开连接Mini路由器的线路(路由器的有线接口不连接任何设备),断电重启路由器后,再次使用路由器的管理地址192.168.1.253尝试登录管理界面。
上述操作依旧无法解决问题,建议复位路由器。
复位之后依旧无法登陆界面,需要检查浏览器设置。
浏览器设置了默认自动拔号或代理服务器功能都会导致无法登录管理界面,建议检查浏览器设置或更换浏览器(如火狐,谷歌)。
如果依旧无法登录界面,建议更换无线终端测试。
看过文章“tplink路由器wr700n不能登录管理员界面怎么办”
浏览量:0
下载量:0
时间:
linux下scp远程拷贝怎么使用?今天读文网小编与大家分享下 linux下scp远程拷贝怎么使用的解决方法,有兴趣的朋友不妨了解下。
scp – 安全复制 (远程文件复制系统)
语法
scp [-1245BCpqrv] [-c cipher] [F ssh_config] [-I identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:] file1 […] [[suer@]host2:]file2
说明
Scp在主机间复制文件。他使用 ssh(1)作为数据传输。而且用同样认证和安全性。 不行rcp(1),scp将在认证中请求输入密码
所有的文件可能需要服务器和用户的特别描述来指明文件将被复制到/从某台服务器。两个远程登录的服务器间的文件复制是允许的。
选项如下:
-1 强制scp 用协议1
-2 。。 。。 。。 2
-4 强制scp用IPV4的网址
-6 强制scp用IPV6的网址
-B 选择批处理模式(防止输入密码)
-C 允许压缩。 标注-C到ssh(1)来允许压缩
-c cipher
选择cipher来加密数据传输。这个选项直接传递到ssh(1)
-F ssh_config
设定一个可变动的用户配置给ssh.这个选项直接会被传递到ssh(1)
-i identity_file
选择被RSA认证读取私有密码的文件。这个选项可以直接被传递到ssh(1)
-l limit
限制传输带宽,也就是速度 用Kbit/s的速度
-o ssh_option
可以把ssh_config中的配置格式传到ssh中。这种模式对于说明没有独立的scp文件中断符的scp很有帮助。关于选项的如下。而他们的值请参看ssh_config(5)
AddressFamily
BatchMode
BindAddress
ChallengeResponseAuthentication
CheckHostIP
Cipher
Ciphers
Compression
CompressionLevel
ConnectionAttempts
ConnectTimeout
ControlMaster
ControlPath
GlobalKnownHostsFile
GSSAPIAuthentication
GSSAPIDelegateCredentials
Host
HostbasedAuthentication
HostKeyAlgorithms
HostKeyAlias
HostName
IdentityFile
IdentitiesOnly
LogLevel
MACs
NoHostAuthenticationForLocalhost
NumberOfPasswordPrompts
PasswordAuthentication
Port
PreferredAuthentications
Protocol
ProxyCommand
PubkeyAuthentication
RhostsRSAAuthentication
RSAAuthentication
SendEnv
ServerAliveInterval
ServerAliveCountMax
SmartcardDevice
StrictHostKeyChecking
TCPKeepAlive
UsePrivilegedPort
User
UserKnownHostsFile
VerifyHostKeyDNS
-P port
指定连接远程连接端口。注意这个选项需要写成大写????ectl的模式。因为-p已经早保留了次数和模式在rcp(1)中
-p
指定修改次数,连接次数,还有对于原文件的模式
-q
把进度参数关掉
-r
递归的复制整个文件夹
-S program
指定一个加密程序。这个程序必须可读所有ssh(1)的选项。
-V
冗余模式。 让 scp 和 ssh(1) 打印他们的排错信息, 这个在排错连接,认证,和配置中非常有用。
诊断
scp 返回0 成功时,不成功时返回值大于0
参照
rcp(1), sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1),
ssh_config(5), sshd(8)
历史。
Scp建立与rcp(1)的基础上,属于BSD源代码。 从属于加州大学的Regents
作者
反正不是我
例子: 我在xp下装了一个unix指令的虚拟机, 因此可以直接使用unix的指令
这个软件叫做cygwin, 无需安装, 只要把其目录下bin添加到xp环境变量PATH里边就可以了
这样进入CMD 在我要复制的文件夹目录下 运行 scp intro root@192.168.80.142:/root/lliu/ 文件就被复制过去了
显得很专业(其实有很多ssh软件有ftp功能,但习惯了这种操作符界面再转回GUI界面觉得很别扭 所以干脆走回原始
^_^我很懒了,上面的是我在http://blog.chinahr.com/blog/roliuck/post/81662 这位仁兄那里拷贝过来的,不过我还是举一个简单的例子吧!常用的例子
两台linux 我要拷贝10.2.1.5上的/home/purple/aa.tar文件到我自己的机器10.2.1.6上的/home/,这时命令如下
# scp 10.2.10.5:/home/purple/aa.tar /home
提示你输入密码,这里输入的是root用户的密码
注:这时会提示输入密码,默认的是root用户所以需要输入root用户的密码
如果你要用其他用户,比如我用purple用户就是如下命令了
# scp purple@10.2.10.5:/home/purple/aa.tar /home
看过“ linux下scp远程拷贝怎么使用”
浏览量:3
下载量:0
时间:
Scp在主机间复制文件。他使用 ssh(1)作为数据传输。而且用同样认证和安全性。那么linux scp怎么远程拷贝文件呢?今天读文网小编与大家分享下linux scp远程拷贝文的解决方法,有兴趣的朋友不妨了解下。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录
scp命令的用处:
scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远程拷贝文件。
scp命令基本格式:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
scp命令的参数说明:
-1
强制scp命令使用协议ssh1
-2
强制scp命令使用协议ssh2
-4
强制scp命令只使用IPv4寻址
-6
强制scp命令只使用IPv6寻址
-B
使用批处理模式(传输过程中不询问传输口令或短语)
-C
允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q
不显示传输进度条。
-r
递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher
以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config
指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file
从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit
限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option
如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program
指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
scp命令的实际应用
1>从本地服务器复制到远程服务器
(1) 复制文件:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
实例:
scp /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft
scp /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft/scp2.zip
scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft
scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft/scp2.zip
(2) 复制目录:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
例子:
scp -r /home/linux/soft/ root@www.mydomain.com:/home/linux/others/
scp -r /home/linux/soft/ www.mydomain.com:/home/linux/others/
上面 命令 将 本地 soft 目录 复制 到 远程 others 目录下,即复制后远程服务器上会有/home/linux/others/soft/ 目录
2>从远程服务器复制到本地服务器
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
例如:
scp root@www.mydomain.com:/home/linux/soft/scp.zip /home/linux/others/scp.zip
scp www.mydomain.com:/home/linux/soft/ -r /home/linux/others/
linux系统下scp命令中很多参数都和 ssh1 有关 , 还需要看到更原汁原味的参数信息,可以运行man scp 看到更细致的英文说明.
看过“linux scp怎么远程拷贝文件”
浏览量:2
下载量:0
时间:
如今我们的生活工作中都离不开网络,路由器是使用最广的一种网络互联设备,是数据通信的重要互联设备。那么你知道无线路由器网站为什么不能登录吗?下面是读文网小编整理的一些关于无线路由器网站不能登录的相关资料,供你参考。
一、连线
无法登陆无线路由器,一般第一要想到的就是负责连接电脑与路由器的网线连接不正确。不排除因为其它原因,网线没有接紧。
这时我们要看网线的两头都重新拔·接紧,在路由器的那一头,要看一下,相关的网线接头是否是接在LAN口上,同时把电脑开启,看一下LAN口对应的灯是否有亮起。
电脑开着,电脑网卡灯不亮或是无线路由器的LAN口对应的灯不亮,主要有三个原因:
网线头坏了,需要重接网线头;
电脑的网卡损坏或是驱动没有安装好,先尝试重装网卡驱动;
无线路由器损坏了,需要借用一个好的路由器连接,看是否也一样。
在确认灯是正常灯起的情况下,还无法进入无线路由器,请往下看其它方法
路由器的默认IP
有些路由器出厂的IP地址不是192.168.1.1,不同的厂商有不同的默认IP地址,请以说明书或是无线路由后面显示的地址为准。
据小D所遇到,现在市面的用的较多的是192.168.1.1;192.168.0.1,还有一些是使用192.168.16.1;192.168.2.1;这些是默认的路由器IP
如果您自己有手动改过IP地址,需要自己记得原来改动的IP地址是多少,才能进入路由器。
在确认路由器的IP地址没有错的情况下,再往下看:
拨号网络原因
如果原来电脑有使用过拨号网络:
请打开IE浏览器右上角的“工具”——Internet选项——连接,并选择"从不进行拨号连接" ,更好的建议是直接删除宽带的拨号连接(记得保存好上网帐号还有密码)。如下图:
然后在同一页面中,“局域网(LAN)设置”这一项中,点击“局域网设置”
看一下“为LAN使用代理服务器”这一项是否打√了,如果有,请直接取消。记得操作操作完整个流程保存一下。
电脑重启后,再次尝试是否可以登陆进去,如果还是不行,请往下看其它步骤。
电脑本地网络IP地址
查看本地连接的IP地址与路由器LAN口IP是否同一个网段。如果不在同一网段,需要手工配一个IP地址给电脑。
打开电脑网络的本地连接,WIN8以上叫以太网,记得无线是本地连接,还是以太网,都是鼠标双击,才会出现以下的截图(不是从鼠标右击,属性里进入的)
直接点击“详情信息”,查看“IPV4地址”这一项,显示的IP段是否与路由器默认IP或是自己设置的IP处于同一网段中。
如果不是同一网段,请百度一下IP地址设置,按方法设置一下电脑的IP,方法小D就不再这里重复了。
浏览器缓存问题
重新打开IE浏览器右上角的“工具”——Internet选项——删除进入,会看到下方的示例图,把需要删除的记录都打√,小D勾选的大家都可以做为参考。
删除好后,关闭浏览器重新登陆一下路由,建议是最好电脑重启一下后,再操作登陆。
其它问题
如果原来有修改了路由器管理端口,那登陆时应输入http://LAN口IP:端口号。如http://192.168.1.1:8080才能弹出登陆窗口
以上的步骤操作过,都不行,有可能是路由器冗机了。
如果是冗机了,可以关路由器的电源,隔几分钟后重新上电,有时能解决很多默名的故障。
如果关电不行,最后一个方法,那就是恢复出厂设置,每一台路由器都有恢复出厂设置的按钮,一般在路由器后边,一个小黑按钮上。具体请看路由器的说明书,一般按着按钮的7钞左右,看到前面的灯全闪一下就可以放手了。
看过文章“无线路由器网站为什么不能登录”
浏览量:5
下载量:0
时间:
在现今网络飞速发展的时代中,路由器有着举足轻重的作用,tenda腾达路由器是一款性价比极高的设备,腾达科技有限公司创立于1999年,是专业的网络通信设备及方案供应商,也是集研发、生产、供应、销售、服务于一体的高新技术企业,那么你知道腾达路由器不能登录怎么办吗?下面是读文网小编整理的一些关于腾达路由器不能登录的的相关资料,供你参考。
1. 如果您是第一次使用路由器,请确认以下方面
① 网线是否连接到了正确的端口(LAN口),对应的指示灯是否都正常(网卡灯和路由器对应LAN口灯亮);
② 您的电脑的IP是否和路由器LAN口一个网段。例如,路由器管理地址是192.168.0.1,子网掩码:255.255.255.0,则电脑的IP地址应设置为:192.168.0.X(X为2-254之间),如下图所示:
③ 若上述提示仍不能帮助您登陆到路由器,请将路由器恢复为出厂设置,复位的方法请参考常见问题中的其它文档。
2.如果您修改过路由器的管理端口,则注意下次登陆时您需要以http://LAN口IP:XX 的方式来登陆,XX为新的端口号,如:http://192.168.0.1:8080
3.如果您之前可以正常登陆,现在登陆不了,有可能是他人修改过路由器的配置或默认的80端口导致的攻击(尤其在开启远程管理的情况下),建议重启或复位路由器,修改路由器的管理端口,修改用户名和密码。
4.如果复位之后仍然无法登陆或开始一段时间能登陆,但过一段时间后又不能登陆,则可能遭受了ARP欺骗,建议找出欺骗源、查杀病毒或将其隔离。(ARP欺骗的判断请参考常见问题中的相关文档)
5.检查是否设置了IE代理:打开IE浏览器,选择“工具”->“Internet 选项”->“连接”->“局域网设置”:
请确定上面“代理服务器”的“为LAN使用代理服务器”选项没有勾选,若有勾选,则应取消。
看过文章“腾达路由器不能登录怎么办”
浏览量:3
下载量:0
时间:
作为典型的无线网络,无线局域网近几年来得到了非常迅速的发展,无线路由器是无线局域网的重要连接设备,无线路由器的出现给人们带来了极大的方便,使人们已经进入了处处有网、时时有网的时代。那么你知道为什么无线路由器不能登录电脑吗?下面是读文网小编整理的一些关于无线路由器不能登录电脑的相关资料,供你参考。
连线
无法登陆无线路由器,一般第一要想到的就是负责连接电脑与路由器的网线连接不正确。不排除因为其它原因,网线没有接紧。
这时我们要看网线的两头都重新拔·接紧,在路由器的那一头,要看一下,相关的网线接头是否是接在LAN口上,同时把电脑开启,看一下LAN口对应的灯是否有亮起。
电脑开着,电脑网卡灯不亮或是无线路由器的LAN口对应的灯不亮,主要有三个原因:
1,网线头坏了,需要重接网线头;
2,电脑的网卡损坏或是驱动没有安装好,先尝试重装网卡驱动;
3,无线路由器损坏了,需要借用一个好的路由器连接,看是否也一样。
在确认灯是正常灯起的情况下,还无法进入无线路由器,请往下看其它方法
路由器的默认IP
有些路由器出厂的IP地址不是192.168.1.1,不同的厂商有不同的默认IP地址,请以说明书或是无线路由后面显示的地址为准。
现在市面的用的较多的是192.168.1.1;192.168.0.1,还有一些是使用192.168.16.1;192.168.2.1;这些是默认的路由器IP
如果您自己有手动改过IP地址,需要自己记得原来改动的IP地址是多少,才能进入路由器。
在确认路由器的IP地址没有错的情况下,再往下看:
拨号网络原因
如果原来电脑有使用过拨号网络:
请打开IE浏览器右上角的“工具”——Internet选项——连接,并选择"从不进行拨号连接" ,更好的建议是直接删除宽带的拨号连接(记得保存好上网帐号还有密码)。如下图:
然后在同一页面中,“局域网(LAN)设置”这一项中,点击“局域网设置”
看一下“为LAN使用代理服务器”这一项是否打√了,如果有,请直接取消。记得操作操作完整个流程保存一下。
电脑重启后,再次尝试是否可以登陆进去,如果还是不行,请往下看其它步骤。
电脑本地网络IP地址
查看本地连接的IP地址与路由器LAN口IP是否同一个网段。如果不在同一网段,需要手工配一个IP地址给电脑。
打开电脑网络的本地连接,WIN8以上叫以太网,记得无线是本地连接,还是以太网,都是鼠标双击,才会出现以下的截图(不是从鼠标右击,属性里进入的)
直接点击“详情信息”,查看“IPV4地址”这一项,显示的IP段是否与路由器默认IP或是自己设置的IP处于同一网段中。
如果不是同一网段,请百度一下IP地址设置,按方法设置一下电脑的IP,方法小D就不再这里重复了。
浏览器缓存问题
重新打开IE浏览器右上角的“工具”——Internet选项——删除进入,会看到下方的示例图,把需要删除的记录都打√,小D勾选的大家都可以做为参考。
删除好后,关闭浏览器重新登陆一下路由,建议是最好电脑重启一下后,再操作登陆。
其它问题
如果原来有修改了路由器管理端口,那登陆时应输入http://LAN口IP:端口号。如http://192.168.1.1:8080才能弹出登陆窗口
以上的步骤操作过,都不行,有可能是路由器冗机了。
如果是冗机了,可以关路由器的电源,隔几分钟后重新上电,有时能解决很多默名的故障。
如果关电不行,最后一个方法,那就是恢复出厂设置,每一台路由器都有恢复出厂设置的按钮,一般在路由器后边,一个小黑按钮上。具体请看路由器的说明书,一般按着按钮的7钞左右,看到前面的灯全闪一下就可以放手了。
看过文章“为什么无线路由器不能登录电脑”
浏览量:2
下载量:0
时间:
人们对于当下白热化的各种APP应用越来越热衷,到处都会见到手持设备在刷微博、聊微信、玩应用,由此可见,无线路由器在现代人的生活中发挥的作用越来越大,那么你知道无线路由器不能登录怎么办吗?下面是读文网小编整理的一些关于无线路由器不能登录的相关资料,供你参考。
连线
无法登陆无线路由器,一般第一要想到的就是负责连接电脑与路由器的网线连接不正确。不排除因为其它原因,网线没有接紧。
这时我们要看网线的两头都重新拔·接紧,在路由器的那一头,要看一下,相关的网线接头是否是接在LAN口上,同时把电脑开启,看一下LAN口对应的灯是否有亮起。
电脑开着,电脑网卡灯不亮或是无线路由器的LAN口对应的灯不亮,主要有三个原因:
网线头坏了,需要重接网线头;
电脑的网卡损坏或是驱动没有安装好,先尝试重装网卡驱动;
无线路由器损坏了,需要借用一个好的路由器连接,看是否也一样。
在确认灯是正常灯起的情况下,还无法进入无线路由器,请往下看其它方法
路由器的默认IP
有些路由器出厂的IP地址不是192.168.1.1,不同的厂商有不同的默认IP地址,请以说明书或是无线路由后面显示的地址为准。
据所遇到的,现在市面的用的较多的是192.168.1.1;192.168.0.1,还有一些是使用192.168.16.1;192.168.2.1;这些是默认的路由器IP
如果您自己有手动改过IP地址,需要自己记得原来改动的IP地址是多少,才能进入路由器。
在确认路由器的IP地址没有错的情况下,再往下看:
拨号网络原因
如果原来电脑有使用过拨号网络:
请打开IE浏览器右上角的“工具”——Internet选项——连接,并选择"从不进行拨号连接" ,更好的建议是直接删除宽带的拨号连接(记得保存好上网帐号还有密码)。如下图:
然后在同一页面中,“局域网(LAN)设置”这一项中,点击“局域网设置”
看一下“为LAN使用代理服务器”这一项是否打√了,如果有,请直接取消。记得操作操作完整个流程保存一下。
电脑重启后,再次尝试是否可以登陆进去,如果还是不行,请往下看其它步骤。
电脑本地网络IP地址
查看本地连接的IP地址与路由器LAN口IP是否同一个网段。如果不在同一网段,需要手工配一个IP地址给电脑。
打开电脑网络的本地连接,WIN8以上叫以太网,记得无线是本地连接,还是以太网,都是鼠标双击,才会出现以下的截图(不是从鼠标右击,属性里进入的)
直接点击“详情信息”,查看“IPV4地址”这一项,显示的IP段是否与路由器默认IP或是自己设置的IP处于同一网段中。
如果不是同一网段,请百度一下IP地址设置,按方法设置一下电脑的IP,方法小D就不再这里重复了。
浏览器缓存问题
重新打开IE浏览器右上角的“工具”——Internet选项——删除进入,会看到下方的示例图,把需要删除的记录都打√,小D勾选的大家都可以做为参考。
删除好后,关闭浏览器重新登陆一下路由,建议是最好电脑重启一下后,再操作登陆。
其它问题
如果原来有修改了路由器管理端口,那登陆时应输入http://LAN口IP:端口号。如http://192.168.1.1:8080才能弹出登陆窗口
以上的步骤操作过,都不行,有可能是路由器冗机了。
如果是冗机了,可以关路由器的电源,隔几分钟后重新上电,有时能解决很多默名的故障。
如果关电不行,最后一个方法,那就是恢复出厂设置,每一台路由器都有恢复出厂设置的按钮,一般在路由器后边,一个小黑按钮上。具体请看路由器的说明书,一般按着按钮的7钞左右,看到前面的灯全闪一下就可以放手了。
看过文章“无线路由器不能登录怎么办”
浏览量:4
下载量:0
时间:
rsh命令用于连接到远程的指定主机并执行指定的命令。那么Linux中rsh怎么远程使用shell命令呢?读文网小编分享了Linux中rsh远程使用shell命令的方法,希望对大家有所帮助。
rsh有两种使用模式:
rsh $host : 远程登录,启动交互式进程。
rsh $host $command :远程执行命令,并显示输出。
rsh hosthostcommand
rsh $host $command的作用是:
1.在远程机器上执行命令$command
2.通过网络连接(socket)重定向当前进程和远端进程的标准输入和标准输出
3.远端rsh进程在远端进程结束后结束
4.本地rsh进程读取远端进程的标准输出直到结束(EOF)
深刻理解这个执行过程有助于理解各种“奇怪”的现象和用法。
代码如下:
+ Suspended (tty input)
$ rsh localhost infinite-loop &
[1] + Suspended (tty input) rsh pv007 infinite-loop
$ rsh -n localhost infinite-loop &
# 执行正常
后台执行rsh命令时,提示了和标准输入相关的错误信息。这是因为rsh默认会把当前窗口的标准输入重定向到远端进程。
而本地rsh进程作为后台程序运行的话,标准输入被“阻塞”了。
通过-n选项制定不需要重定向标准输入(stdin)。
远端进程的执行
执行命令
代码如下:
rsh somehost infinite-loop
在远端机器上查看相关进程:
代码如下:
$ pstree -a -p 3353
in.rshd,3353
└─csh,3363 -c infinite-loop
└─infinite-loop,3632 /u/szhang/bin/infinite-loop
可以看出,远端机器上的rshd进程负责启动远端进程。而且可以看出是通过csh -c的方式启动的(这里用户的默认Shell是C Shell)。
远端进程的标准IO
检查远端进程的文件描述符:
代码如下:
$ ls -l /proc/3363/fd /proc/3632/fd
/proc/3363/fd:
total 0
lrwx------. 1 Jul 30 23:47 16 -> socket:[1184748899]
lrwx------. 1 Jul 30 23:47 17 -> socket:[1184748899]
l-wx------. 1 Jul 30 23:47 18 -> pipe:[1184749092]
lrwx------. 1 Jul 30 23:47 19 -> socket:[1184748899]
代码如下:
/proc/3632/fd:
total 0
lrwx------. 1 Jul 30 23:47 0 -> socket:[1184748899]
lrwx------. 1 Jul 30 23:47 1 -> socket:[1184748899]
l-wx------. 1 Jul 30 23:47 2 -> pipe:[1184749092]
可以看出远端里程的标准输入输出是被重定向到socket上的:
1.stdin 和 stdout 共享一个socket连接
2.stderr 则通过一个pipe重定向(重定向到stdout ???)
3.rsh 的返回值
rsh程序自身的返回值表明的是rsh自身的运行状况,而不是远端进程的返回值。
获得远端进程的返回值
代码如下:
# 远端是C Shell
$ rsh $host "$command ; echo $status"
代码如下:
# 远端是Bash Shell
$ rsh $host "$command ; echo $?"
代码如下:
# 远端Shell类型不确定
$ rsh $host "sh -c '$command ; echo $?'"
启动远端进程所用的Shell
由于用于启动远端进程的Shell类型是未知的,而有些操作的语法在不同Shell里是不同的。
比如输入输出重定向、命令返回值等。
解决该问题的方法之一是通过明确指定的Shell来启动真正需要的里程。比如:
代码如下:
# 不确定远端Shell的类型,显式通过Bash Shell来启动需要的进程
$ rsh -n $host "sh -c '$command > /dev/null 2>&1'"
另一种思路,则是通过一个wrapper程序来启动真正的命令。
通过rsh在远端执行后台进程
想在远端机器上执行后台进程。命令rsh $host "$command &"是不起作用的,会导致本地的rsh进程不能结束。
背后的原因应该是,$command的标准输入输出通常仍然绑定在rsh连接的socket上,从而导致本地的rsh进程无法读取到文件结束符EOF。
知道了原因就知道该怎么办了,关键是关闭后台进程续定在rsh连接上的标准输入输出。
代码如下:
# 如果远端Shell是C Shell
$ rsh -n $host "$command >& /dev/null &"
代码如下:
# 如果远端Shell是Bash Shell
$ rsh -n $host "$command > /dev/null 2>&1 &"
代码如下:
# 不确定远端Shell的类型
$ rsh -n $host "sh -c '$command > /dev/null 2>&1 &'"
但上面这样重定向的办法有个缺点是不能得到任何远端进程的输出,而有时我们希望获得一些输出信息。
这时就需要远端进程能够以守护进程(daemon)的方式运行。
这种情况下,rsh命令可以简单地写作:$ rsh -n $host "$command &"
远端后台进程的内容用Tcl表示,大意如下:
代码如下:
#/bin/env tclsh
puts "I am a background job"
puts "This Can Be Seen by Remote rsh Process"
close stdout
close stderr
# rsh连接到此应该结束。
puts "This Can NOT Be Seen by Remote rsh Process"
更进就步,我们可以甚至忽略rsh命令中的后台运行符:$ rsh -n $host "$command"
这时远端进程需要通过fork的方式结束自己,并启动真正的后台进程(守护进程)。
rsh进程的阻塞和超时处理
在程序中调用rsh $host $command时可能由于各种奇怪的原因发生rsh进程的阻塞,这不是我们希望看到的。
我们希望设置一个超时(timeout)机制来解决这个问题。
在Tcl程序中的一种实现可以这样: TODO
TCP Connection连接数过多引起的rsh失败
监控邮件显示rsh $host $command命令失败,错误提示为“poll: protocol failure in circuit setup"
怀疑是网络连接数过多所引起。
rsh $host $command 的网络连接过程
命令rsh $host连接远程主机的513端口。
命令rsh $host $command则连接远程主机的514端口,并随后发送一个本地端口号给远程主机,要求远程主机建立一个新的TCP连接到这个端口(还不清楚这个新的连接有什么作用)。然后才是传送命令和等待命令结束。
这样做的结果就是在rsh $host $command进程过多时,本地开放的端口资源被消耗完了,从而导致新的rsh $host $command失败。
这是rsh $host的使用则依然正常。
这里提到的rsh的缺陷,也是建议尽量使用ssh的原因之一。
没有完全关闭的网络连接:
在远程主机上kill掉相关的rsh进程后,会导致TCP连接没有完全关闭。
netstat命令显示CLOSE_WAIT状态,端口资源并没有释放出来。
根据配置文件/proc/sys/net/ipv4/tcp_keepalive_time显示,需要等待2个小时,那些端口才会因为超时而被真正关闭,从而释放出来。
代码如下:
%> netstat -a | grep localhost
tcp 0 0 localhost:933 localhost:935 CLOSE_WAIT
%> cat /proc/sys/net/ipv4/tcp_keepalive_time
7200 ;# in seconds. = 2 hours
%> echo "net.ipv4.tcp_keepalive_time = 120" >> /etc/sysctl.con
看过“Linux中rsh怎么远程使用shell命令”
浏览量:3
下载量:0
时间: