標籤:

mac 怎麼登錄到 linux 伺服器並傳輸文件?

我們系裡伺服器,我是學物理的。在windows 我用ssh secure shell client連接到伺服器可以提交matlab ,fortran 什麼讓伺服器算。ssh secure shell client或者winscp還可以在我的電腦和伺服器之間進行文件傳輸。我想問下在mac下怎麼辦?


連過去不是問題,自帶的 Terminal 太挫,裝個iterm,ssh 過去就可以了咩.

題主真正的麻煩將會是傳文件,這也是讓很多人蛋疼的問題.

先說簡單實用的方法:

  1. 用sz / rz ,伺服器不需要任何配置,lrzsz可以用 homebrew安裝,然後: 在iTerm2中使用Zmodem的方法 ? OpenExz

  2. 用 ftp 適合傳大一些的文件,https://gist.github.com/dawn110110/8184061 這是一個ftp伺服器(pyftpd搞的),只有一個文件,沒有任何依賴,你nohup python pyftp.py 一下就跑起來了,記得自己在代碼里加用戶. 當然,你也可以在伺服器端搞一個 vsftpd 啥的,不過顯然比這個麻煩.
  3. 然後 scp / nc / rsync,scp在一頭直接用,那倆需要兩頭搞,有空再補具體用法。

大殺器 svn hook / git hook (參考:Horizon 地平線 - Git hooks 簡介 以及 SegmentFault 以及 Git - Git Hooks) ,自己搞文件同步.

  1. 我心中 最完美的方案 ,就是用 githooks + scp / ftp 搞一個自動同步,你可以本地用git 管理文件,然後設定 githooks,讓你每次 本次 ci 都調一個腳本,用scp / ftp / pexpect 或者什麼玩意,把本地文件弄到伺服器指定位置上. 自動同步了有木有?(記得 linux建立ssh信任關係,這樣scp就不用輸入密碼了,當然你也可以設定成用pexpect之類的東西來處理密碼)這個方法的好處是,可定製性超級強,而且真的是自動的,而且,伺服器端幾乎不需要任何配置. 唯一蛋疼的地方就是你需要自己學一下 git 和 githooks 怎麼用.
  2. 還有一個沒那麼好的辦法,你也可以自己搭個 svn 伺服器,自己加上 svn hook,自己本地修改文件,加上 hook 讓提交後,直接自動在你的伺服器某個地方 svn up. 當然,你也可以不用 svn hook,而是登上去之後 手動 svn up. 如果你不喜歡 git 可以這麼弄.
  3. 還有一個叫 samba 的蛋疼的東西,在windows上使更合適。有興趣可以折騰一下。

其實我真想說,git hooks 真的能拯救世界啊.

最後,題主日後肯定會遇到多個ssh session 多個終端窗口蛋疼的問題,我推薦用 tmux,當然你也可以用 screens, 下面是我的 tmux 配置,一個非常簡單的配置,但是挺好用.

效果圖:

用法:tt 進入到 tmux 里. ctrl + J 退出 tmux (保留各個session). shift + 左 左邊走你,shift + 右,右邊走你. shift + 下 新建 走你. 配置文件:

==== ~/.tmux.conf 內容=====
# detach session
bind-key -n C-j detach
# new window shift + 下 新建 window
bind -n S-down new-window
# prev shift + &<- 前一個 window bind -n S-left prev # next shift + -&> 後一個 window
bind -n S-right next
# history limit
set -g history-limit 50000
# bottom color 底部背景(青)
set -g status-bg colour6
# active window title background 底部active window 背景(紅)
set-window-option -g window-status-current-bg color53

==== ~/.bashrc 內容===
#tmux alias
alias tt="tmux attach」 # tt attach 進入 tmux
alias lll="tmux ls」 # 列出所有 session
alias tls="tmux ls」 # 一樣

祝樓主越折騰越開心.


沒用過 ssh secure shell client 和 winscp,猜測這兩個客戶端都有圖形界面可供上傳文件到伺服器?我沒用過相關的 Mac 版的圖形界面程序,這裡介紹一下兩個基礎命令。

如果不介意脫離圖形界面使用命令行,可以用 Mac 自帶的 Terminal.app。登錄到伺服器:

$ ssh user@remote

如果你沒配置過 ssh key,一般會問你要密碼,輸入密碼即可,注意輸入的時候不像平常密碼輸入框,是沒有提示的。登錄上去之後,建議配置一下 ssh key,方便後續操作。參考 How To Set Up SSH Keys

上傳文件也是如此,有多種復用 SSH 協議的上傳文件途徑,最基本的是 scp:

$ scp ~/local/file user@remote:~/file

左邊參數是你 Mac 電腦里想要上傳的文件路徑,右邊是伺服器上的路徑。如果沒配置 ssh key,會提示你輸入密碼,照辦就是。

可以 man scp 查看 scp 的詳細說明。


支持ssh的機器通常支持sftp


Mac的terminal裡面就有ssh吧?傳文件直接scp不就搞定了。就這麼兩個命令啊。


ssh

sftp

rsync


上傳下載文件可以用filezilla 這個有mac版本的


懶的話用sshfs,把對方文件系統直接掛載過來,然後直接拖文件


1.在linux伺服器查看ssh服務是否正在運行:ps -e | grep ssh

2.如果沒有運行:service sshd start

3.向linux伺服器傳輸文件: scp -r 本地目錄 linux用戶名@ip地址:目標路徑


My answer might came late. But you can check this out, Is there a (free) graphical SSH file transfer client for Mac?. I tried Fugo, it works well.


On MAC

brew update

brew install Caskroom/cask/osxfuse

Reboot

brew install homebrew/fuse/sshfs

mkdir ~/localdir

sshfs -C -o reconnect user@host:dir ~/localdir


reference: osx - What"s a good graphical SFTP utility for OS X?

my first choice:

Fugu for Mac

http://www.macupdate.com/app/mac/8761/fugu

I also have used Cyberduck on mac, it works ~


Cyberduck 好用且快。


sshfs+osxfuse誰用誰知道,支持掛載,適合內網或虛擬機同步、開發,如果需要部署結合ssh,如果remote嫌速度慢了,就用Cyberduck ,掛載即將支持,或者用FileZilla。以上推薦全部正版免費開源。


Cyberduck 小黃鴨。


用 lrzsz

鏈接:

mmastrac/iterm2-zmodem

用法:

  1. Install lrzsz on OSX: brew install lrzsz
  2. Save the iterm2-send-zmodem.sh and iterm2-recv-zmodem.sh scripts in /usr/local/bin/
  3. Set up Triggers in iTerm 2 like so:(iTerm2-Preferences-Profiles-Default or New-Advanced-Triggers-按下述填寫即可)

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

To send a file to a remote machine:

  1. Type rz on the remote machine
  2. Select the file(s) on the local machine to send
  3. Wait for the coprocess indicator to disappear

The receive a file from a remote machine

  1. Type sz filename1 filename2 … filenameN on the remote machine
  2. Select the folder to receive to on the local machine
  3. Wait for the coprocess indicator to disappear


往伺服器上傳文件還有一個圖形界面的軟體(Mac上):Filezilla,也很好用。


ssh與ftp都沒整好,我是從win7連linux伺服器,最後我是用的github做中轉,只能這樣了~~

git-ssh 配置和使用你可能需要這個。。


我的日常文件同步(包括兩台伺服器、手機、平板、路由器)均採用ssh。哈哈哈偶爾會用別的。這裡還是建議一下使用rsa密鑰。。方便很多的


彷彿可以把遠程目錄掛載到本地吧。

掛載好後,就跟使用本地目錄一樣。


scp啊scp啊scp啊scp啊scp啊scp啊scp啊scp啊


推薦閱讀:

TAG:Mac | macOS | Linux | SSH |