Duo and 3rd Party Clients

From FarmShare

Jump to: navigation, search


Cyberduck SFTP

CyberDuck is the recommended SFTP transfer program due to the way it can handle session sharing, and ease of use. Download CyberDuck from https://cyberduck.io/?l=en and install. Once installed be sure to set File Transfer settings to "Use browser connection" to avoid having to authenticate each time you want to transfer a file.



To open new sessions in SecureCRT, after logging and establishing a connection to Farmshare, right-click on the session name, and click 'Clone Session'. This will open a second terminal connection to that node, and will not require you to enter authentication information again if you are using Kerberos to authenticate.



The latest 'Development Snapshot' of putty allows you to 'Share connection when possible' and will allow users to open multiple sessions to Farmshare without having to authenticate each time. Download the latest 'development snapshot' from here: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Once running, on the left panel click SSH to enter the SHH configuration menu. Check the box for 'Share SSH connection when possible' and when opening a new session to that same node, Putty will re-use your established connection for the new session, and not require you to enter authentication information again.




Does not support 2 Factor Authentication very well, and should be avoided if possible for connecting to Farmshare.

Emacs / TRAMP

Adding this code to my emacs startup file (~/.emacs) was able to get things working for me. I don't know all the variations on the prompt that Duo sends, so you may need to slightly modify this if you get a message other than "Passcode or option (1-1):" or if you want to use an authentication other than option number 1.

 (defconst my-tramp-prompt-regexp
   (concat (regexp-opt '("Passcode or option (1-1):") t)
   "Regular expression matching my login prompt question.")
 (defun my-tramp-action (proc vec)
   "Enter 1 to get duo authentication."
     (with-current-buffer (tramp-get-connection-buffer vec)
       (tramp-message vec 6 "\n%s" (buffer-string))
       (tramp-send-string vec "1"))))
 (add-to-list 'tramp-actions-before-shell
              '(my-tramp-prompt-regexp my-tramp-action))
Personal tools