如何在iterm2中设置自动远程登录

如何在iterm2中设置自动远程登录,第1张

当然,OS X上的终端可以使用iterm2,这样配置后便利性不比$99的secureCRT差
首先介绍下不通过跳板机进行登录的方式,准备:
1 写一个expect脚本
#!/usr/bin/expect
set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect {
"(yes/no)"
{send "yes\n";exp_continue}
"password:"
{send "[lindex $argv 2]\n"}
}
interact
该脚本比较简单,需要三个参数,第一个参数是远程用户名,第二个参数是远程地址,第三个参数是密码
2 将expect脚本copy到$PATH下(例如/usr/local/bin)
3 在iterm2中设置登录命令为1中的脚本,用command+o的方式呼出profiles,点击Edit Profiles
上面是已配置的远程登录机列表,双击可以自动登录
如上图配好后,即可自动登录
下面再说下有跳板机的情况
俺公司的跳板机策略如下,不同公司的环境不一样,也许某些同学可以进行参考
1跳板机上不能存放任何文件,/tmp下可以方临时文件,每天会定时清掉
2copy文件方向只能是local->跳板机->remote的方向,即local可以push/pull跳板机上的文件,跳板机可以push/pull远程上的文件
3向跳板机登录前需要通过邮件/短信的方式获取passcode,这是除密码之外的额外的验证方式
其实跳板机的自动远程登录与非跳板机的差异在expect脚本的编写上,其他的照搬即可,那这里就直接把代码贴出来就行了
#!/usr/bin/expect
# 参数1:远程host;参数2:远程password
if { $argc != 2 } {
send_user "Usage: host password\n"
exit
}
set host [lindex $argv 0]
set pw [lindex $argv 1]
set TERMSERV yourjumpserver # 跳板机服务器
set USER jumpserveruser # 用户名
set PASSWORD jumperserverpasswd # 跳板机密码
set fd [open /place/to/passcode r] # 本地存放passcode的地方
gets $fd pc
close $fd
# Start the session
catch {spawn ssh -l $USER $TERMSERV} # 登录跳板机
# Login
expect "assword:" { send "$PASSWORD\r" }
expect "passcode:" { send "$pc\r" }
#通过跳板机登录线上机器
expect "hostname" { send "ssh -l $USER $host\r" } # hostname为你跳板机的名字
expect {
"(yes/no)"
{send "yes\n";exp_continue}
"assword:"
{send "$pw\n"}
}
expect "$host" { send "cd ~\r"; interact }

关于跳板机/堡垒机的介绍:

跳板机可以使开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和 *** 作

跳板机使用场景

查看状态

访问测试
登入web界面,初始密码账号均为admin

登录jumpserver服务web端进行虚拟机管理 *** 作

1)登录admin管理界面

创建一个develop组

3)创建一个用户curry,将curry添加到develop组里面,角色为普通用户,然后提交

4)点击更新,给curry用户添加登录密码

填写curry用户密码然后提交

5)用curry账号登录

进入curry用户界面

6)创建一个管理用户(用来管理资产虚拟主机,此用户必须要有资产虚拟主机的root身份,其中的密码为ssh登录虚拟主机的密码)

7)创建资产(指的是被管理的虚拟主机)

填入虚拟主机名、ip地址及管理用户

点击主机名,进入资产详情页面

点击测试,检测被管理的虚拟主机是否能ping通,如下结果表明测试成功

8)创建一个过滤器

9)创建一个系统用户(此用户名在登录虚拟主机后会被自动创建,为虚拟主机登录的默认普通用户,非管理员用户,权限比较小)

10)创建授权规则,将资产添加到develop组中,是的此组中的用户可以访问此资产虚拟主机

11)登录curry用户界面,点击web终端

可以看到被授权的终端虚拟机,点击虚拟终端即可在命令窗口 *** 作终端

12)再设置过滤器

点击规则

设置命令过滤禁止规则

13)此时再一次登录curry页面登录虚拟主机时,执行这些命令将会被禁止,如下所示

14)回到admin的web端,在会话管理下的历史会话可以打开录像回放列表,记录虚拟主机的所有 *** 作过程的录像

15)录像回放

16)再创建一个资产

17)在资产授权中将此资产也添加到develop组中

18)登录curry界面并打开web终端可以看到 *** 作两台虚拟主机

应用场景:用户机无法连接远程局域网中内网机,需要通过跳板机连接远程服务器的情况。

实现方式:端口转发;端口转发的意思是,将所有发送至IP1:port1的请求全部转发至IP2:port2

实 *** 过程:

用户机 192168111

跳板机 10111103

内网机 10110104
步骤一、先在“用户机” 上通过CRT SSH登录 到“跳板机10111103”

步骤二,配置登录Session:

1、secureCRT配置 -- 选择“Options” -> "Session Options" 如图:
2、在左侧边栏中选择“Connection” -> "Port Forwarding",选择“add”添加一条新的转发规则
3、添加本任意端口(最好是1024之上的端口)至内网机 22端口的转发规则
名称 (任意这里使用)conn

Local:是“用户机”将要访问的IP和端口信息。这里用127001 端口是:2222

remote:是“内网机” 的IP和端口信息,这里用10110104  端口是SSH访问的默认端口22

4、只要“步骤一”的连接处于连接状态,所有本地(127001)2222的请求都会通过跳板机(10111103 )转发至内网服务器(10110104 )的22端口

总结 ,通过以上的步骤完成了端口转发。如果想让用户机访问 内网机的Web应用 ,在Remote的配置页将端口改为:80 或 8080 即可。

第三步、验证

通过CRT建立新SSH 连接,主机IP:127001 端口:22 即可登录内网机了。

公司连上远程游戏服需要先ssh登到跳板机,再在跳板机上ssh到远程,不能直连,如:
自己的系统(Mac OS) ===> 跳板机 ===>远程服务器
1 跳板机和远程服务器是Linux,远程服务器有python 25(太旧了)
都有ssh、scp,但远程服务器不能用ssh、scp连到跳板机。跳板机不能用ssh和scp连到自己的
系统。也就是说只能正向不能反向。
2 自己的系统有perl 51、python 275、ssh、scp等各种UNIX必备。
3 跳板机能用的命令不多,能访问的目录只有自己的home目录。
4 远程服务器有运维监控着,不能乱搞乱开监听端口开服务。
困难
====
现在的效率比较低的是,有很多的批量可以做的事,比如在N台服务器执行一样的一系列命令,
传文件N个这些服务器,从N个服务器拉特定的日志文件等,因为隔着一台跳板机,不能很轻易的
在自己的系统上搞个脚本自动执行这些重复繁琐的任务。
目前的解决方案
==========
secureCRT脚本。
用secureCRT的Session会话可以一键点击连到远程服务器,secureCRT脚本还可以调用这些预建好的Session自动打开Session然后做跑一些命令(并能自动输入密码)。
但是有时候用得很吃力,有时要打开远程服务器的Session去做,有时如果涉及多个远程的Session,为了不打开太多,就用跳板机的Session用ssh连各个服务器执行各个远程服务器的命令。
传文件也是,比如上传一个文件,secureCRT脚本要执行本地的scp传到跳板机,然后打开跳板机的Session,执行scp拷到远程服务器。
虽然已经封装好了很多函数,用起来比较方便了,但还是免不了打开这个那个Session,在这个那个Session里执行各种命令的状况。
所以想简化这个过程,“绕过”这个跳板机。在本地写脚本,能 *** 作到远程的服务器并执行一些命令。(既然跳板机可以ssh命令到远程服务器执行一个命令就收工,那本地系统上可以用ssh命令到跳板机执行 [前面那段ssh到远程服务器执行命令的命令] ?但这貌似有点复杂,尤其是两次都要输密码,甚至执行的命令本身也要输密码并且又考虑安全的情况下)
寻找解决方法
==========
网上找到了fabric和(R)ex, 前者是Python实现的,后者是perl实现的。但貌似两者只有在“直连"服务器时才能用,猜测也是在实现了ssh命令的连上某服务器执行命令的功能基础上做了封装。
貌似ssh有本地端口转发,但不太会用,不知能不能结合上fabric或者Rex,在不在跳板机和远程服务器作太多“手脚”的情况下,完成本地和远程方便的交互。

打开电脑。
双击这台电脑出现如下画面。再单击添加一个网路位置然后,点击下一步-》下一步,要求输入ftp服务器的地址,我输入的是服务器IP地址,好记,方便。然后下一步如果服务器无任何权限,那么直接点击下一步否则,如服务器要求用户名和密码的登录方式,取消掉匿名登录复选框,将服务器创建的用户名填入,登录ftp服务器时,服务器要求输入密码。点击下一步,输入名称,自己命名点击完成即完成快捷方式的创建。以后,访问ftp服务器,只要打开这台电脑,双击FTP登录即可直达ftp服务器。
在跳板机上,如果无法登陆指定的共享文件夹,可以在凭据管理中输入文件地址、用户名、密码,注意由于是域账户,前面要回上简称哪ddmm\zhangsan,前面的ddmm\不能少。这样进入后,将共享文件夹做成快捷方式,就可以一击打开了。

跳板机上传文件到服务器显示0k有权限问题、文件名问题和文件大小问题等原因。
1、权限问题:上传文件的用户没有足够的权限将文件上传到目标服务器。确保跳板机的用户以及目标服务器上的用户都具有适当的权限,能够在相应的目录中上传文件。
2、文件名问题:文件名中包含非常规字符,可能会导致上传问题。确保文件名不包含特殊字符,使用简单的英文字母和数字即可。
3、文件大小问题:上传的文件大小超出了服务器的文件上传限制。检查目标服务器的文件上传限制,确保上传的文件大小不超出限制范围。
跳板机,也叫做跳跃服务器、跳站机,是一种被广泛应用于云计算和安全领域的网络技术。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12879006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存