Skip to content

Paramiko SSH runner does not override ssh port from ssh config  #4660

@Lomonosow

Description

@Lomonosow
SUMMARY

Paramiko SSH runner does not override ssh port from ssh config. It always use 22 port, I can override it only via runner parameters.

ISSUE TYPE
  • Bug Report
STACKSTORM VERSION

st2 3.0dev (f7a680a), on Python 2.7.12

OS / ENVIRONMENT / INSTALL METHOD
  • Centos 7, Python 2.7
  • k8s (openshift)
STEPS TO REPRODUCE

Config section

    [ssh_runner]
    remote_dir = /tmp
    use_ssh_config = True
    ssh_config_file_path = ~/.ssh/config

ssh config

Host *
StrictHostKeyChecking no
ServerAliveInterval 60
ServerAliveCountMax 60
UserKnownHostsFile=/dev/null
ForwardAgent yes
Port 2200
HostName %h

Action (instance is action parameter)

chain:
  - name: disk_use
    ref: core.remote
    parameters:
      cmd: df -Ph
      hosts: "{{ instance }}"
    publish:
      result: |
        {% for host, result in disk_use.items() %}
        {{ result.stdout }}
        {% endfor %}
EXPECTED RESULTS

Will connect to server via SSH port 2200

ACTUAL RESULTS
"traceback": "Traceback (most recent call last):\n  File \"/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2common/runners/parallel_ssh.py\", line 261, in _connect\n    client.connect()\n  File \"/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2common/runners/paramiko_ssh.py\", line 144, in connect\n    self.client = self._connect(host=self.hostname, socket=self.bastion_socket)\n  File \"/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2common/runners/paramiko_ssh.py\", line 702, in _connect\n    client.connect(**conninfo)\n  File \"/opt/stackstorm/st2/local/lib/python2.7/site-packages/paramiko/client.py\", line 362, in connect\n    raise NoValidConnectionsError(errors)\nNoValidConnectionsError: [Errno None] Unable to connect to port 22 on <IP>\n", 

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions