1
votes

I am able to render the public ip of a virtual machine on Chrome but not able to connect it with SSH, raising an error: connect to host xxx.xxx.xxx.xx port 22: Connection refused. When I check the virtual machine on Portal, there is no security group assigned to it. Is that something to do with this? How can I fix it?

1
can you telent azure vm with port 22 from your local PC?Jason Ye
Not able to use telnet on windows 10. Http port is working, but not ssh port.Gene9y
can't telnet azure VM or can't use telnet this command?Jason Ye
http work on port 80, SSH work on port 22, your VM create in classic VM or Azure resource VM?Jason Ye
Out of the box, every Linux VM you spin up in Azure has an ssh port open. If you used ARM, it'll be port 22. If you created a classic vm, it's either port 22 or a random port (if there is more than one vm in the cloudapp.net namespace. Perhaps edit your question with more details about the ports configured?David Makogon

1 Answers

2
votes

According to your description, if we want to ssh to docker image, we should install SSH on this image, and open port for this image, I will run centos image for example:

docker pull centos:centos6
docker run -i -t centos:centos6
yum install openssh-server openssh-client(install ssh)
chkconfig sshd on
passwd(reset root password)
exit
docker commit 332b19ca916c centos/centosssh  (commit this image)

docker run -i -t -d -p 50001:22 centos/centosssh  (NAT for this container)
docker attach containerid  (connect this container)
vi /etc/ssh/sshd_config  (modify sshd config)

change UsePAM to no

service sshd start

Then open port 50001 in Azure NSG.

This time, we can use SSH to connect it:

enter image description here

Update:

I use CLI 2.0 to create a VM with docker extension, and change public IP address to static, and use command sudo docker run -d -p 80:80 nginx to run container on the VM. then use chrome to test the nginx, it works fine, and I can ssh to the Azure VM with Public IP and FQDN. the nginx container:

jason@MyDockerVM:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
61e10ebb6d22        nginx               "nginx -g 'daemon ..."   4 minutes ago       Up 4 minutes        0.0.0.0:80->80/tcp, 443/tcp   kind_leavitt

Try to use FQDN to ssh host:

[c:\~]$ ssh jason@mypublicdns.eastus.cloudapp.azure.com


Host 'mypublicdns.eastus.cloudapp.azure.com' resolved to 52.186.123.151.
Connecting to 52.186.123.151:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.19.0-65-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Fri Apr  7 06:40:06 UTC 2017

  System load:  0.31              Processes:              118
  Usage of /:   5.8% of 28.80GB   Users logged in:        1
  Memory usage: 12%               IP address for eth0:    10.0.0.4
  Swap usage:   0%                IP address for docker0: 172.17.0.1

Try to use public IP address to ssh the host:

[c:\~]$ ssh jason@52.186.123.151
Connecting to 52.186.123.151:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.19.0-65-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Fri Apr  7 06:40:55 UTC 2017

  System load:  0.21              Processes:              119
  Usage of /:   5.8% of 28.80GB   Users logged in:        1
  Memory usage: 12%               IP address for eth0:    10.0.0.4
  Swap usage:   0%                IP address for docker0: 172.17.0.1