# Ansible SSH connection plugin not working

**URL:** <https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404>\
**Category:** Get Help\
**Tags:** netscaler, ssh, plugin, ubuntu, collections\
**Created:** [January 20, 2024, 1:31pm UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404 "2024-01-20T13:31:26Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![sumanth-lingappa](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sumanth-lingappa/32/839_2.png) [@sumanth-lingappa](https://forum.ansible.com/u/sumanth-lingappa)\
**Post date:** [January 20, 2024, 1:31pm UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/1 "2024-01-20T13:31:26Z")

</div>

I am the maintainer of `citrix.adc` ansible collection and we have a [ssh\_connection\_plugin for the `citrix.adc` ansible collection.](https://github.com/netscaler/ansible-collection-netscaleradc/blob/citrix.adc/ansible-collections/adc/plugins/connection/ssh_citrix_adc.py)

When I run ansible-playbook using this connection plugin, I am facing some unknown error which is difficult to debug. Maybe because I do not know the nitty-gritty of the working of the `shell` module.

ansible-playbook command ran:

```bash
ansible-playbook nsver_info.yaml -i inventory.ini -l mpx --ask-pass -vvvvv

```

Below are the details

Thanks in advance

## Playbook gist

To run `show ns version` on the NetScaler CLI prompt.

## Manually SSH into the ADC and run the command which playbook runs

> as soon as we SSH into the ADC, we will be in NSCLI prompt (not shell prompt). We need to type `shell` command to take us into shell prompt.

> The intention of our connection plugin is to run tasks directly into `shell` prompt.

> I believe, we are getting error before running any tasks!

### Manual SSH

```bash
ssh nsroot@10.x.x.42
###############################################################################
# #
# WARNING: Access to this system is for authorized users only #
# Disconnect IMMEDIATELY if you are not an authorized user! #
# #
###############################################################################

(nsroot@10.x.x.42) Password:
Last login: xxx xxx xx xx:xx:xx xxxx from 10.x.x.x
Warning: You are connected to a secondary node; configuration changes made in this session will not be propagated to, or saved on, other nodes (Primary node is 10.x.x.43)
 Done
ABC>
ABC> shell
Copyright (c) 1992-2013 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.

root@ns#
root@ns# nscli -s -U :nsroot:xxxxxxx show version | grep -i 'NetScaler NS'
Warning: You are connected to a secondary node; configuration changes made in this session will not be propagated to, or saved on, other nodes (Primary node is 10.217.206.43)
	NetScaler NS12.1: Build 65.39.nc, Date: Dec 18 2023, 06:48:15 (64-bit)
root@ns#

```

## `nsver_info.yaml` file

```yaml
- name: Find NS version
  hosts: mpx
  remote_user: nsroot
  connection: citrix.adc.ssh_citrix_adc
  gather_facts: false

  vars:
    ansible_python_interpreter: '{{ netscaler_python_path | default("/var/python/bin/python") }}'

  tasks:
    - name: Finding the current version of the NetScaler
      shell:
        cmd: "nscli -s -U :nsroot:{{ nitro_pass }} show version | grep -i 'NetScaler NS'"
      register: version

    - name: NetScaler version
      debug:
        msg: "{{ version }}"
      register: present_version

```

## inventory file

```ini
[mpx]
10.x.x.42 nsip=10.x.x.42 nitro_user=nsroot nitro_pass=xxxxxxx validate_certs=no ansible_host=10.x.x.42 ansible_user=nsroot

```

## ansible.cfg

```ini
[defaults]
remote_tmp = /var/
pipelining = true

[ssh_connection]
scp_if_ssh = True
retries = 3

[connection]
retries = 3

```

## Short error

```auto
fatal: [10.x.x.42]: FAILED! => {
    "changed": false,
    "module_stderr": "OpenSSH_8.9p1 Ubuntu-3ubuntu0.6, OpenSSL 3.0.2 15 Mar 2022\r\ndebug1: Reading configuration data /home/sumanthl/.ssh/config\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files\r\ndebug1: /etc/ssh/ssh_config line 21: Applying options for *\r\ndebug2: resolve_canonicalize: hostname 10.x.x.42 is address\r\ndebug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/sumanthl/.ssh/known_hosts'\r\ndebug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/sumanthl/.ssh/known_hosts2'\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 1041040\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\nERROR: Not logged in\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 1\r\n",
    "module_stdout": "ERROR: Session expired or killed. Please login again\nERROR: Not logged in\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

```

## Long error is in the below gist

> <https://gist.github.com/sumanth-lingappa/ab18739a5be5c718d3157d4faa94202e>

---

<div class="post-metadata">

**Author:** ![chris](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris/32/293_2.png) [@chris](https://forum.ansible.com/u/chris)\
**Post date:** [January 20, 2024, 7:45pm UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/2 "2024-01-20T19:45:46Z")

</div>

What result do you get if you try manually run the command Ansible ran?

I think this is the command to try (after correcting the IP address):

```bash
export SSHPASS=YOURPASSWORD
sshpass -e ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o 'User="nsroot"' -o ConnectTimeout=10 -o 'ControlPath="/home/sumanthl/.ansible/cp/90241bcd3b"' 10.x.x.42 'shell /bin/sh -c '"'"'/var/python/bin/python && sleep 0'"'"''

```

---

<div class="post-metadata">

**Author:** ![flowerysong](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/flowerysong/32/2305_2.png) [@flowerysong](https://forum.ansible.com/u/flowerysong)\
**Post date:** [January 20, 2024, 7:55pm UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/3 "2024-01-20T19:55:41Z")

</div>

There is a note in the description of this plugin that says “The only authentication method that works with this plugin is with ssh key file”, so I think this failure is expected. It’s not a great UX to permit the configuration of authentication methods that don’t work, but that appears to be the current state.

---

<div class="post-metadata">

**Author:** ![sumanth-lingappa](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sumanth-lingappa/32/839_2.png) [@sumanth-lingappa](https://forum.ansible.com/u/sumanth-lingappa)\
**Post date:** [January 23, 2024, 3:34am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/4 "2024-01-23T03:34:01Z")

</div>

@chris, below is the output after trying the command you mentioned.

It keeps retrying the the end step. I had to interrupt it to end.

```bash
❯ sshpass -e ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o 'User="nsroot"' -o ConnectTimeout=10 -o 'ControlPath="/home/sumanthl/.ansible/cp/90241bcd3b"' 10.x.x.42 'shell /bin/sh -c '"'"'/var/python/bin/python && sleep 0'"'"''

OpenSSH_8.9p1 Ubuntu-3ubuntu0.6, OpenSSL 3.0.2 15 Mar 2022
debug1: Reading configuration data /home/sumanthl/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 10.x.x.42 is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/sumanthl/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/sumanthl/.ssh/known_hosts2'
debug1: auto-mux: Trying existing master
debug1: Control socket "/home/sumanthl/.ansible/cp/90241bcd3b" does not exist
debug3: ssh_connect_direct: entering
debug1: Connecting to 10.x.x.42 [10.x.x.42] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x10
debug2: fd 3 setting O_NONBLOCK
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug3: timeout: 10000 ms remain after connect
debug1: identity file /home/sumanthl/.ssh/id_rsa type 0
debug1: identity file /home/sumanthl/.ssh/id_rsa-cert type -1
debug1: identity file /home/sumanthl/.ssh/id_ecdsa type -1
debug1: identity file /home/sumanthl/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/sumanthl/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/sumanthl/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/sumanthl/.ssh/id_ed25519 type -1
debug1: identity file /home/sumanthl/.ssh/id_ed25519-cert type -1
debug1: identity file /home/sumanthl/.ssh/id_ed25519_sk type -1
debug1: identity file /home/sumanthl/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/sumanthl/.ssh/id_xmss type -1
debug1: identity file /home/sumanthl/.ssh/id_xmss-cert type -1
debug1: identity file /home/sumanthl/.ssh/id_dsa type -1
debug1: identity file /home/sumanthl/.ssh/id_dsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.0
debug1: compat_banner: match: OpenSSH_8.0 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to 10.x.x.42:22 as 'nsroot'
debug3: record_hostkey: found key type RSA in file /home/sumanthl/.ssh/known_hosts:44
debug3: load_hostkeys_file: loaded 1 keys from 10.x.x.42
debug1: load_hostkeys: fopen /home/sumanthl/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug3: order_hostkeyalgs: prefer hostkeyalgs: rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,sntrup761x25519-sha512@openssh.com,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c,kex-strict-c-v00@openssh.com
debug2: host key algorithms: rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: zlib@openssh.com,zlib,none
debug2: compression stoc: zlib@openssh.com,zlib,none
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
debug2: host key algorithms: rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos: 
debug2: languages stoc: 
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: zlib@openssh.com
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: zlib@openssh.com
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-rsa SHA256:q/Drz1qILBJK+r8oJBA5ctpxvwRR6DeVPDbuHlwt6yw
debug3: record_hostkey: found key type RSA in file /home/sumanthl/.ssh/known_hosts:44
debug3: load_hostkeys_file: loaded 1 keys from 10.x.x.42
debug1: load_hostkeys: fopen /home/sumanthl/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug1: Host '10.x.x.42' is known and matches the RSA host key.
debug1: Found key in /home/sumanthl/.ssh/known_hosts:44
debug3: send packet: type 21
debug2: ssh_set_newkeys: mode 1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: ssh_set_newkeys: mode 0
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/sumanthl/.ssh/id_rsa RSA SHA256:0kUP3fYE9KcecQLpwrsHbV1V7MqW9m8vnUq7BWZrhjk
debug1: Will attempt key: /home/sumanthl/.ssh/id_ecdsa 
debug1: Will attempt key: /home/sumanthl/.ssh/id_ecdsa_sk 
debug1: Will attempt key: /home/sumanthl/.ssh/id_ed25519 
debug1: Will attempt key: /home/sumanthl/.ssh/id_ed25519_sk 
debug1: Will attempt key: /home/sumanthl/.ssh/id_xmss 
debug1: Will attempt key: /home/sumanthl/.ssh/id_dsa 
debug2: pubkey_prepare: done
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 53
debug3: input_userauth_banner: entering
###############################################################################
# #
# WARNING: Access to this system is for authorized users only #
# Disconnect IMMEDIATELY if you are not an authorized user! #
# #
###############################################################################

debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/sumanthl/.ssh/id_rsa RSA SHA256:0kUP3fYE9KcecQLpwrsHbV1V7MqW9m8vnUq7BWZrhjk
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/sumanthl/.ssh/id_ecdsa
debug3: no such identity: /home/sumanthl/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/sumanthl/.ssh/id_ecdsa_sk
debug3: no such identity: /home/sumanthl/.ssh/id_ecdsa_sk: No such file or directory
debug1: Trying private key: /home/sumanthl/.ssh/id_ed25519
debug3: no such identity: /home/sumanthl/.ssh/id_ed25519: No such file or directory
debug1: Trying private key: /home/sumanthl/.ssh/id_ed25519_sk
debug3: no such identity: /home/sumanthl/.ssh/id_ed25519_sk: No such file or directory
debug1: Trying private key: /home/sumanthl/.ssh/id_xmss
debug3: no such identity: /home/sumanthl/.ssh/id_xmss: No such file or directory
debug1: Trying private key: /home/sumanthl/.ssh/id_dsa
debug3: no such identity: /home/sumanthl/.ssh/id_dsa: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup keyboard-interactive
debug3: remaining preferred: password
debug3: authmethod_is_enabled keyboard-interactive
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug3: send packet: type 50
debug2: we sent a keyboard-interactive packet, wait for reply
debug3: receive packet: type 60
debug2: input_userauth_info_req: entering
debug2: input_userauth_info_req: num_prompts 1
debug3: send packet: type 61
debug3: receive packet: type 52
debug1: Enabling compression at level 6.
Authenticated to 10.x.x.42 ([10.x.x.42]:22) using "keyboard-interactive".
debug1: setting up multiplex master socket
debug3: muxserver_listen: temporary control path /home/sumanthl/.ansible/cp/90241bcd3b.AdrtizGrmF2wdWAX
debug2: fd 4 setting O_NONBLOCK
debug3: fd 4 is O_NONBLOCK
debug3: fd 4 is O_NONBLOCK
debug1: channel 0: new [/home/sumanthl/.ansible/cp/90241bcd3b]
debug3: muxserver_listen: mux listener channel 0 fd 4
debug2: fd 3 setting TCP_NODELAY
debug3: set_sock_tos: set socket 3 IP_TOS 0x08
debug1: control_persist_detach: backgrounding master process
debug2: control_persist_detach: background process is 1060969
debug2: fd 4 setting O_NONBLOCK
debug1: forking to background
debug1: Entering interactive session.
debug1: pledge: id
debug2: set_control_persist_exit_time: schedule exit in 60 seconds
debug1: multiplexing control connection
debug2: fd 5 setting O_NONBLOCK
debug3: fd 5 is O_NONBLOCK
debug1: channel 1: new [mux-control]
debug3: channel_post_mux_listener: new mux channel 1 fd 5
debug3: mux_master_read_cb: channel 1: hello sent
debug2: set_control_persist_exit_time: cancel scheduled exit
debug3: mux_master_read_cb: channel 1 packet type 0x00000001 len 4
debug2: mux_master_process_hello: channel 1 client version 4
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_master_read_cb: channel 1 packet type 0x10000004 len 4
debug2: mux_master_process_alive_check: channel 1: alive check
debug3: mux_client_request_alive: done pid = 1060971
debug3: mux_client_request_session: session request sent
debug3: mux_master_read_cb: channel 1 packet type 0x10000002 len 144
debug2: mux_master_process_new_session: channel 1: request tty 0, X 0, agent 0, subsys 0, term "xterm-256color", cmd "shell /bin/sh -c '/var/python/bin/python && sleep 0'", env 2
debug3: mux_master_process_new_session: got fds stdin 6, stdout 7, stderr 8
debug1: channel 2: new [client-session]
debug2: mux_master_process_new_session: channel_new: 2 linked to control channel 1
debug2: channel 2: send open
debug3: send packet: type 90
debug3: receive packet: type 80
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug3: client_input_hostkeys: received RSA key SHA256:q/Drz1qILBJK+r8oJBA5ctpxvwRR6DeVPDbuHlwt6yw
debug3: client_input_hostkeys: received DSA key SHA256:IWuuy4lnwZTckAuMxKZmKycqmJOmwXlVI88Wnu/EETo
debug3: client_input_hostkeys: ssh-dss key not permitted by HostkeyAlgorithms
debug1: client_input_hostkeys: searching /home/sumanthl/.ssh/known_hosts for 10.x.x.42 / (none)
debug3: hostkeys_foreach: reading file "/home/sumanthl/.ssh/known_hosts"
debug3: hostkeys_find: found ssh-rsa key at /home/sumanthl/.ssh/known_hosts:44
debug1: client_input_hostkeys: searching /home/sumanthl/.ssh/known_hosts2 for 10.x.x.42 / (none)
debug1: client_input_hostkeys: hostkeys file /home/sumanthl/.ssh/known_hosts2 does not exist
debug3: client_input_hostkeys: 1 server keys: 0 new, 1 retained, 0 incomplete match. 0 to remove
debug1: client_input_hostkeys: no new or deprecated keys from server
debug3: receive packet: type 91
debug2: channel_input_open_confirmation: channel 2: callback start
debug2: client_session2_setup: id 2
debug1: Sending environment.
debug1: channel 2: setting env LANG = "en_US.UTF-8"
debug2: channel 2: request env confirm 0
debug3: send packet: type 98
debug1: channel 2: setting env LC_ALL = "en_US.UTF-8"
debug2: channel 2: request env confirm 0
debug3: send packet: type 98
debug1: Sending command: shell /bin/sh -c '/var/python/bin/python && sleep 0'
debug2: channel 2: request exec confirm 1
debug3: send packet: type 98
debug3: mux_session_confirm: sending success reply
debug2: channel_input_open_confirmation: channel 2: callback done
debug2: channel 2: open confirm rwindow 0 rmax 32768
debug1: mux_client_request_session: master session id: 2
debug2: channel 2: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 2
debug2: exec request accepted on channel 2
debug2: channel 2: rcvd ext data 175
Warning: You are connected to a secondary node; configuration changes made in this session will not be propagated to, or saved on, other nodes (Primary node is 10.x.x.43)
debug2: channel 2: written 175 to efd 8
 Done
debug3: receive packet: type 98
debug1: client_input_channel_req: channel 2 rtype keepalive@openssh.com reply 1
debug3: send packet: type 100
debug3: receive packet: type 98
debug1: client_input_channel_req: channel 2 rtype keepalive@openssh.com reply 1
debug3: send packet: type 100
debug3: receive packet: type 98
debug1: client_input_channel_req: channel 2 rtype keepalive@openssh.com reply 1
debug3: send packet: type 100
debug3: receive packet: type 98

```

---

<div class="post-metadata">

**Author:** ![sumanth-lingappa](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sumanth-lingappa/32/839_2.png) [@sumanth-lingappa](https://forum.ansible.com/u/sumanth-lingappa)\
**Post date:** [January 23, 2024, 3:34am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/5 "2024-01-23T03:34:48Z")

</div>

@flowerysong, can you please paste the URL of the documentation please?

---

<div class="post-metadata">

**Author:** ![flowerysong](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/flowerysong/32/2305_2.png) [@flowerysong](https://forum.ansible.com/u/flowerysong)\
**Post date:** [January 23, 2024, 4:21am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/6 "2024-01-23T04:21:33Z")

</div>

The link you provided in your initial post. [ansible-collection-netscaleradc/ansible-collections/adc/plugins/connection/ssh\_citrix\_adc.py at citrix.adc · netscaler/ansible-collection-netscaleradc · GitHub](https://github.com/netscaler/ansible-collection-netscaleradc/blob/citrix.adc/ansible-collections/adc/plugins/connection/ssh_citrix_adc.py)

Line 29.

---

<div class="post-metadata">

**Author:** ![chris](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris/32/293_2.png) [@chris](https://forum.ansible.com/u/chris)\
**Post date:** [January 23, 2024, 10:49am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/7 "2024-01-23T10:49:14Z")

</div>

I’m afraid I don’t know not sure what the result mean… What happens if you change the final command in the line to do something else, like print the uptime?

---

<div class="post-metadata">

**Author:** ![sumanth-lingappa](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sumanth-lingappa/32/839_2.png) [@sumanth-lingappa](https://forum.ansible.com/u/sumanth-lingappa)\
**Post date:** [January 24, 2024, 3:50am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/8 "2024-01-24T03:50:29Z")

</div>

@chris below is the output when we replace the last command with `uptime`

```bash
❯ sshpass -e ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o 'User="nsroot"' -o ConnectTimeout=10 -o 'ControlPath="/home/sumanthl/.ansible/cp/90241bcd3b"' 10.x.x.42 'uptime'

OpenSSH_8.9p1 Ubuntu-3ubuntu0.6, OpenSSL 3.0.2 15 Mar 2022
debug1: Reading configuration data /home/sumanthl/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 10.x.x.42 is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/sumanthl/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/sumanthl/.ssh/known_hosts2'
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug1: multiplexing control connection
debug2: fd 5 setting O_NONBLOCK
debug3: fd 5 is O_NONBLOCK
debug1: channel 1: new [mux-control]
debug3: channel_post_mux_listener: new mux channel 1 fd 5
debug3: mux_master_read_cb: channel 1: hello sent
debug2: set_control_persist_exit_time: cancel scheduled exit
debug3: mux_master_read_cb: channel 1 packet type 0x00000001 len 4
debug2: mux_master_process_hello: channel 1 client version 4
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_master_read_cb: channel 1 packet type 0x10000004 len 4
debug2: mux_master_process_alive_check: channel 1: alive check
debug3: mux_client_request_alive: done pid = 1069101
debug3: mux_client_request_session: session request sent
debug3: mux_master_read_cb: channel 1 packet type 0x10000002 len 98
debug2: mux_master_process_new_session: channel 1: request tty 0, X 0, agent 0, subsys 0, term "xterm-256color", cmd "uptime", env 2
debug3: mux_master_process_new_session: got fds stdin 6, stdout 7, stderr 8
debug1: channel 2: new [client-session]
debug2: mux_master_process_new_session: channel_new: 2 linked to control channel 1
debug2: channel 2: send open
debug3: send packet: type 90
debug3: receive packet: type 91
debug2: channel_input_open_confirmation: channel 2: callback start
debug2: client_session2_setup: id 2
debug1: Sending environment.
debug1: channel 2: setting env LANG = "en_US.UTF-8"
debug2: channel 2: request env confirm 0
debug3: send packet: type 98
debug1: channel 2: setting env LC_ALL = "en_US.UTF-8"
debug2: channel 2: request env confirm 0
debug3: send packet: type 98
debug1: Sending command: uptime
debug2: channel 2: request exec confirm 1
debug3: send packet: type 98
debug3: mux_session_confirm: sending success reply
debug2: channel_input_open_confirmation: channel 2: callback done
debug2: channel 2: open confirm rwindow 0 rmax 32768
debug1: mux_client_request_session: master session id: 2
debug2: channel 2: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 2
debug2: exec request accepted on channel 2
ERROR: Session expired or killed. Please login again
debug2: channel 2: rcvd ext data 7
debug2: channel 2: rcvd ext data 16
ERROR: No such command
ERROR: No such command
debug2: channel 2: written 23 to efd 8
debug3: receive packet: type 98
debug1: client_input_channel_req: channel 2 rtype exit-status reply 0
debug3: mux_exit_message: channel 2: exit message, exitval 1
debug3: receive packet: type 98
debug1: client_input_channel_req: channel 2 rtype eow@openssh.com reply 0
debug2: channel 2: rcvd eow
debug2: chan_shutdown_read: channel 2: (i0 o0 sock -1 wfd 6 efd 8 [write])
debug2: channel 2: input open -> closed
debug3: receive packet: type 96
debug2: channel 2: rcvd eof
debug2: channel 2: output open -> drain
debug2: channel 2: obuf empty
debug2: chan_shutdown_write: channel 2: (i3 o1 sock -1 wfd 7 efd 8 [write])
debug2: channel 2: output drain -> closed
debug3: receive packet: type 97
debug2: channel 2: rcvd close
debug3: channel 2: will not send data after close
debug2: channel 2: send close
debug3: send packet: type 97
debug2: channel 2: is dead
debug2: channel 2: gc: notify user
debug3: mux_master_session_cleanup_cb: entering for channel 2
debug2: channel 1: rcvd close
debug2: channel 1: output open -> drain
debug2: chan_shutdown_read: channel 1: (i0 o1 sock 5 wfd 5 efd -1 [closed])
debug2: channel 1: input open -> closed
debug2: channel 2: gc: user detached
debug2: channel 2: is dead
debug2: channel 2: garbage collecting
debug1: channel 2: free: client-session, nchannels 3
debug3: channel 2: status: The following connections are open:
  #1 mux-control (t16 nr0 i3/0 o1/16 e[closed]/0 fd 5/5/-1 sock 5 cc -1 io 0x03/0x00)
  #2 client-session (t4 r0 i3/0 o3/0 e[write]/0 fd -1/-1/8 sock -1 cc -1 io 0x00/0x00)

debug2: channel 1: obuf empty
debug2: chan_shutdown_write: channel 1: (i3 o1 sock 5 wfd 5 efd -1 [closed])
debug2: channel 1: output drain -> closed
debug2: channel 1: is dead (local)
debug2: channel 1: gc: notify user
debug3: mux_master_control_cleanup_cb: entering for channel 1
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: channel 1: gc: user detached
debug2: channel 1: is dead (local)
debug2: Received exit status from master 1
debug2: channel 1: garbage collecting
debug1: channel 1: free: mux-control, nchannels 2
debug3: channel 1: status: The following connections are open:
  #1 mux-control (t16 nr0 i3/0 o3/0 e[closed]/0 fd 5/5/-1 sock 5 cc -1 io 0x00/0x03)

debug2: set_control_persist_exit_time: schedule exit in 60 seconds

```

---

<div class="post-metadata">

**Author:** ![chris](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris/32/293_2.png) [@chris](https://forum.ansible.com/u/chris)\
**Post date:** [January 24, 2024, 8:58am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/9 "2024-01-24T08:58:49Z")

</div>

> [@sumanth-lingappa](#):
>
> ```auto
> ERROR: Session expired or killed. Please login again
> ...
> ERROR: No such command
> ERROR: No such command
> 
> ```

I’m out of my depth here but it seems off that the device reported _“Session expired or killed. Please login again”_ prior to _“No such command”_?

Was `uptime` a bad choice for a test command, does the target device have a `uptime` command? Perhaps try something that it does have? 🤷

---

<div class="post-metadata">

**Author:** ![sumanth-lingappa](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sumanth-lingappa/32/839_2.png) [@sumanth-lingappa](https://forum.ansible.com/u/sumanth-lingappa)\
**Post date:** [January 24, 2024, 9:07am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/10 "2024-01-24T09:07:35Z")

</div>

I tried with `sshpass ... 10.x.x.42 'uptime'`

Should I have tried with `sshpass ... 10.x.x.42 'shell uptime'` ?

---

<div class="post-metadata">

**Author:** ![chris](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris/32/293_2.png) [@chris](https://forum.ansible.com/u/chris)\
**Post date:** [January 24, 2024, 9:23am UTC](https://forum.ansible.com/t/ansible-ssh-connection-plugin-not-working/3404/11 "2024-01-24T09:23:09Z")

</div>

I don’t know, I’m afraid I’m guessing at this point…
