Como iniciar o servidor ssh na porta diferente?

4

Eu quero iniciar o servidor ssh na porta 21 (para um dos meus hosts locais).

OS X Yosemite (10.10.4)

Eu mudei / etc / httpd_config adicionando:

Port 21

Em seguida, reiniciei o servidor:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist

Mas o nmap ainda mostra o ssh na porta padrão 22:

$ sudo nmap -sS -sV -p 21,22 localhost
Password:

Starting Nmap 6.47 ( http://nmap.org ) at 2015-08-10 18:00 PDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00020s latency).
PORT   STATE  SERVICE VERSION
21/tcp closed ftp
22/tcp open   ssh     OpenSSH 6.2 (protocol 2.0)

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds

Por quê? O que estou fazendo de errado? Por favor ajude.

    
por Drew 11.08.2015 / 03:02

2 respostas

1

Em um sistema Mac OS X como nos sistemas Unix e Linux, há um arquivo /etc/sshd_config . Nesse arquivo você encontrará a seguinte linha:

#Port 22

No entanto, ao contrário dos sistemas Linux / Unix, remover o # , que transforma a linha em um comentário e alterar a porta para a porta que você deseja usar e reiniciar o daemon SSH não fará com que o sistema escute na porta que você selecionou; ele continuará a escutar na porta padrão, 22.

Você pode fazer o sistema escutar na porta não padrão, no entanto, editando o arquivo ssh.plist , conforme indicado nas respostas à postagem de Falha do servidor Por exemplo:

sudo vi /System/Library/LaunchDaemons/ssh.plist

Nesse arquivo, procure a seguinte seção:

<dict>
        <key>Listeners</key>
        <dict>
                <key>SockServiceName</key>
                <string>ssh</string>

Substitua ssh em <string>ssh</string> pela porta que você deseja usar, por exemplo, <string>2222</string> . Em seguida, reinicie o daemon SSH usando os dois comandos abaixo:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist

Em seguida, se você emitir um comando netstat, como o seguinte, deverá ver o sistema escutando na porta não padrão.

$ netstat -an | grep 2222
tcp6       0      0  *.2222                 *.*                    LISTEN
tcp4       0      0  *.2222                 *.*                    LISTEN

Observação: talvez seja melhor não usar um número de porta conhecida , o que pode levar para confusão posterior. Ou seja, talvez seja melhor usar uma porta maior que 1024 do que reatribuir uma usada para um serviço padrão, como FTP . O FTP, e não o telnet , usa a porta 21. O FTP o utiliza para sua porta de comando. Telnet usa a porta 23.

    
por 11.08.2015 / 03:58
0

@barlop estava muito perto. Existem dois lugares para fazer essa modificação. Uma é para o cliente ssh e uma é para o daemon ssh (por exemplo, servidor).

O cliente ssh está em /etc/ssh/ssh_config e o daemon ssh está em /etc/ssh/sshd_config .

Você então reinicia o ssh usando sudo service ssh restart .

Meu nmap agora informa:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000032s latency).
PORT   STATE  SERVICE VERSION
21/tcp open   ssh     (protocol 2.0)
22/tcp closed ssh

Agora posso ssh para minha própria máquina pela porta 21:

$ telnet 10.64.10.200 21
Trying 10.64.10.200...
Connected to 10.64.10.200.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2

A porta 21 está fechada:

$ telnet 10.64.10.200 22
Trying 10.64.10.200...
telnet: Unable to connect to remote host: Connection refused
    
por 11.08.2015 / 03:48