文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

macOS(m芯片)连接服务器及其进行文件传输的各种方式的详解

2023-08-30 14:27

关注

说明:使用了macOS后发现,win系统能使用的xshell、xftp等连接服务器及其文件传输等软件均不能使用了,没有兼容的版本。所以我们刚切换到mac系统该如何去适应呢。

一、连接远程服务器

macOS中前文也说道我们使用的是iterm2进行终端控制的,所以连接远程服务器可以通过ssh来连接

方式一:ssh 用户名@公网ip的方式进行连接

在这里插入图片描述
缺点:每次都需要输入命令且输入密码来进行登陆,比较繁琐
疑问:有没有一种只输入一次密码就能每次简单登陆的方法呢?

方式二:通过脚本进行登陆

  1. 找一个地方创建脚本
  2. 编辑脚本,内容如下:
#!/usr/bin/expectset timeout 30spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]expect {        "(yes/no)?"        {send "yes\n";exp_continue}        "password:"        {send "[lindex $argv 3]\n"}}interact# 变量说明# [lindex $argv 0]:端口号# [lindex $argv 1]:服务器用户名# [lindex $argv 2]:服务器IP地址# [lindex $argv 3]:服务器密码
  1. 编辑完成给予脚本执行权限
# 文件名字可以随便取chmod 777 ssh_server.sh
  1. 打开iTerm2,打开Preferences配置界面,Profiles -> general,左下角点击+号,新建profile,参考下面图片在对应位置输入内容即可。
    在这里插入图片描述

Name:根据需求输入,通常选择标识性较强的内容便于区分,例如服务器的IP地址

Command:这里选择login Shell

Send text at start :填写格式形如A B C D E这样,每一个部分之间用空格隔开,根据自己实际情况填写,下面是对每一部分内容的解释

A代表咱们上面写的本机保存sh脚本的路径:/Users/iterm/ssh_server.shB代表服务器端口号一般远程连接端口为:22C代表服务器用户名一般为:rootD代表服务器IP:根据服务器对外暴露的公网IP填写E代表服务器密码:根据自己实际的服务器密码填写
  1. 设置好之后打开iTerm2,点击profiles,点击前面自己新增的连接远程服务器的profile的名字。首次连接需要输入一次服务器密码,之后再连接就免密码登陆了。
    在这里插入图片描述

二、文件传输

方式一:通过app去实现文件传输

方式二:通过lrzsz

# mac安装通过homebrewbrew install lrzsz# Linux系统安装通过yumyum -y install lrzsz
 wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.sh wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh# 如果wget notfound  brew install wget# 如果网络不佳直接去github下载# https://github.com/robberphex/iTerm2-zmodem

iterm2-send-zmodem.sh

#!/bin/bash# Author: Matt Mastracci (matthew@mastracci.com)# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script# licensed under cc-wiki with attribution required# Remainder of script public domainosascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTermif [[ $NAME = "iTerm" ]]; thenFILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")elseFILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")fiif [[ $FILE = "" ]]; thenecho Cancelled.# Send ZModem cancelecho -e \\x18\\x18\\x18\\x18\\x18sleep 1echoecho \# Cancelled transferelse# 此处需要修改# usr/local/bin/sz "$FILE" --escape --binary --bufsize 4096/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz "$FILE" --escape --binary --bufsize 4096sleep 1echoecho \# Received "$FILE"fi

iterm2-recv-zmodem.sh

#!/bin/bash# Author: Matt Mastracci (matthew@mastracci.com)# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script# licensed under cc-wiki with attribution required# Remainder of script public domainosascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTermif [[ $NAME = "iTerm" ]]; thenFILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")elseFILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")fiif [[ $FILE = "" ]]; thenecho Cancelled.# Send ZModem cancelecho -e \\x18\\x18\\x18\\x18\\x18sleep 1echoecho \# Cancelled transferelsecd "$FILE"# /usr/local/bin/rz --rename --escape --binary --bufsize 4096 /opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz --rename --escape --binary --bufsize 4096sleep 1echoechoecho \# Sent \-\> $FILEfi
brew list lrzsz# 以下是输出结果/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrb/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrx/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrz/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsb/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsx/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsz/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz/opt/homebrew/Cellar/lrzsz/0.12.20_1/share/man/ (2 files)
chmod 777 /usr/local/bin/iterm2-*
# 设置内容    Regular expression: rz waiting to receive.\*\*B0100    Action: Run Silent Coprocess    Parameters: /usr/local/bin/iterm2-send-zmodem.sh    Instant: checked    Regular expression: \*\*B00000000000000    Action: Run Silent Coprocess    Parameters: /usr/local/bin/iterm2-recv-zmodem.sh    Instant: checked

注意:如果是用expect脚本登录的,无法使用lszrz。上述的脚本连接就是使用的cxpect
解决方式待更新!!!!

来源地址:https://blog.csdn.net/qq_45408390/article/details/132179290

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯