假如现在有两个服务器,一个叫SA,另一个叫SB。现在我要在SA上去控制SB。
格式:ssh
SB_用户名@SB_IP
命令for
example:ssh
tuxedo@172161854
echo
aaa>>hzs_testtxtssh
tuxedo@172161854
'echo
-e
haha/n
hoho
>>hzs_testtxt'这和ssh关系,纯粹是cli下 *** 作的问题而已
编译(小工程):
gfortran filename1f filename2f filename3f -o binaryname
允许:
/binaryname
大工程的话一般用Makefile,或者autotools/cmake了ssh支持远程命令参数可以类似方式嵌套:alias pushbaby='cd /Users/xuzhiqiang/Develop/work/tickets/baby/deploy;scp -r -v -i ~/ssh/pedal/id_rsa babytargz babysqltxt zhiqiangxu@1013264206:/home/zhiqiangxu/tmp;ssh zhiqiangxu@1013264206 -i ~/ssh/pedal/id_rsa "source ~/bash_profile;pushbaby";ssh zhiqiangxu@1013264206 -i ~/ssh/pedal/id_rsa "ssh bkapps@1013224100 \"source ~/bash_profile;pushbaby\""'更新要注意的是alias在非交互模式无法使用,需将替换成function通过ssh远程登录linux系统的方法:
1、在需要远程访问的计算机的“新立得”里面安装openssh-server。这台计算机是远程计算机,你当前使用的计算机是本地计算机。如果使用Ubuntu或者其他Linux版本,已经安装了连接到远程计算机的软件。
2、远程计算机软件安装完毕。在本地计算机的终端里面输入:
ssh username@address
其中username是远程计算机的账户名称,address是远程计算机的IP地址或者域名。
平日你希望以keir登录19216812,可以使用:
sssh keir@192168113
如果不知道远程计算机的IP地址,可以在远程计算机上面点击网络监视器,选择“连接信息”,查看IP地址信息。
3、首次连接,可能提示“the authenticity of the host can’t be established”。没有关系,回答yes进行连接,输入密码即可。
4、如果你登录一个标准的Shell会话,命令行提示符是“用户名@远程计算机的名称”。
如果希望通过SSH运行图形程序,可以使用:
ssh -X username@address
连接以后,输入程序的名称即可。譬如,启动gedit,输入gedit即可。另外注意,尽管程序出现在你的计算机上面,但是它依然是运行在远程计算机上面。如果启动OpenOffice或者其他复杂的图形程序,可能有一段时间的延迟。
另外一个SSH连接的用途是传输文件。sftp命令可以实现这个功能。用sftp连接到远程计算机,就可以像登录了一个ftp服务器一样。另外还可以在Nautilus里面使用sftp,在Nautilus的地址栏里面输入:sftp://address,系统会提示用户名和密码。连接完成,就可以在Nautilus里面拷贝/删除文件了。
是一种加密的网络传输协议。
可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。
使用频率最高的场合类Unix系统,但是Windows *** 作系统也能有限度地使用SSH。2015年,微软宣布将在未来的 *** 作系统中提供原生SSH协议支持,Windows 10 1809 版本已提供可手动安装的 OpenSSH工具。
扩展资料
ssh结构
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1x和2x。 用SSH 2x的客户程序是不能连接到SSH 1x的服务程序上去的。OpenSSH 2x同时支持SSH 1x和2x。
1、服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
2、客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
3、他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。SSH 1x和SSH 2x在连接协议上有一些差异。
SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。
启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理 。
参考资料来源 百度百科-ssh
[TOC]
ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面以CentOS为例。有机器A(1921686421),B(1921686422)。
目标:A通过ssh免密码登录到B
特意强调,使用参数可以省去生成公钥/私钥的回车步骤
备注:
第一次登录需输入yes,现在A机可以无密码登录B机了,B登陆A,也同样,在B中生成公钥和私钥对,将公钥写入authorized_keys中,然后同步A、B中的authorized_keys,使其一致就ok了。
也即就是:登录的机子有私钥,被登录的机子要有登录机子的公钥,这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法(不对称加密算法)的公钥/私钥对,当然也可以用dsa(对称加密算法:对应的文件是id_dsa,id_dsapub)
SSH是为建立在应用层和传输层基础上的安全协议( OSI七层与TCP/IP五层网络架构详解 )。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。
从客户端来看,SSH提供两种级别的安全验证:
只要知道帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但缺点是:不能保证你正在连接的服务器就是你想连接的服务器。以下是登录验证流程:
当第一次链接远程主机时,会提示你当前主机的”公钥指纹”,询问你是否继续,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到~/ssh/known_hosts文件中。
这种验证的前提是客户端需要生成一对密钥,将公钥放到需访问的远程服务器。这种验证比上一种的好处是,不能仿冒真正的服务器,因为要仿冒必须拿到客户端生成的公钥。缺点就是验证等待过程稍长些。
1、在客户端打开终端,执行 ssh-keygen ,该命令会默认在 ~/ssh/ 目录下创建 id_rsa 、 id_rsapub 两个文件,分别为你的公钥和私钥
2、将公钥 id_rsapub 文件拷贝到服务器端的 ~/ssh/authorized_keys 文件中,可通过scp拷贝
A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。非对称加密,公钥加密的密文不能公钥解开,只能私钥解开
ssh-agent
ssh-agent是密钥管理器,是一种控制用来保存公钥身份验证所使用的私钥的程序
运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程
ssh-agent是管理多个ssh key的代理,受管理的私钥通过ssh-add来添加
好处1:不用重复输入密码
用 ssh-add 添加私钥时,如果私钥有密码的话,照例会被要求输入一次密码,在这之后ssh-agent可直接使用该私钥,无需再次密码认证。
好处2:不用到处部署私钥
假设私钥分别可以登录同一内网的主机 A 和主机 B,出于一些原因,不能直接登录 B。可以通过在 A 上部署私钥或者设置 Forwarding(转发) 登录 B,也可以转发认证代理连接在 A 上面使用ssh-agent私钥登录 B;可以在A上直接sftp传文件到B上。
如这边有一台机器是local,能通过公钥直接登陆server1和server2。server1和server2之间无公钥登陆。
现在要在server1上直接登陆server2,在local上执行
执行了之后就将私钥给ssh-agent保管了,server1上面登陆server2的时候,需要私钥验证的时候直接找ssh-agent要就可以了
接下来登陆server1,注意-A
可以发现server1上多了/tmp/ssh-xxxxxxxxx/agentxxxxx的socket,之后神奇的事发生了,在 server1上可直接进server2,只需执行如下命令,如果加了-A则可以继续ssh forwarding(转发) ,以至无限的机器forwarding。
ssh (-A) server2
同样的原理可以试一下sftp, scp等基于ssh的命令。
如运行ssh-add,遇到 Could not open a connection to your authentication agent。
解决: 需要ssh-agent启动bash,或者说把bash挂到ssh-agent下面。
1 ssh免密码登陆及其原理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)