scp hangs only in one direction

Alec Jacobson

September 14, 2011

weblog/

I was recently having a very weird problem. I could not scp files from my local machine to my account on a web server (push files from my local machine to the server). Scp would just hang trying to execute. I could however ssh onto that account on the web server. And from there I could scp files from my local machine to the server (pull files from my local machine onto the server). I switched on the verbose flag and saw this:
scp -v some-local-file.txt username@web-server
Executing: program /usr/bin/ssh host web-server, user
username, command scp -v -t .
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to web-login.inf.ethz.ch [129.132.216.54] port 22.
debug1: Connection established.
debug1: identity file /Users/ajx/.ssh/identity type -1
debug1: identity file /Users/ajx/.ssh/id_rsa type 1
debug1: identity file /Users/ajx/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH_4*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'web-login.inf.ethz.ch' is known and matches the RSA host key.
debug1: Found key in /Users/ajx/.ssh/known_hosts:30
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
web-login - iiRHEL 5Server (5.7.0.3) [WEB_SERVER]
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/ajx/.ssh/identity
debug1: Offering public key: /Users/ajx/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending command: scp -v -t .
And thats where it would hang forever. After a long back and forth with the IT department we finally found my stupid mistake. When I first starting using this account on the web-server I was annoyed that the default shell was tcsh so I made a litte .tcsh/.tcshrc file which contained simply:
exec bash
This was the culprit. I don't exactly understand why but removing this file made everything work. (In the end, I changed my shell to bash using the official method via the systems administration of the server).