Скажем, мой eth0
интерфейс имеет несколько IP-адресов, и я могу соединиться с SSH с любым из них. Существует ли способ узнать, с кем из тех я подключен?
(Фон - то, что определенные операции, как удаление IP от хоста, лучше не сделаны от данного IP-адреса. Для предотвращения этого я хочу проверить это сначала, прежде чем я закрою меня.)
Вы можете просто ввести:
echo "$SSH_CONNECTION"
Или, если вам нужен только IP-адрес сервера, а не другие поля:
echo "$SSH_CONNECTION" | cut -f3 -d' '
Если вы используете экран
и повторно подключитесь к ранее запущенному экрану
сеанс, обратите внимание, что выполнение этих команд внутри экрана
покажет соединение, из которого был запущен экран
, а не сеанс, в котором вы повторно подключились к экрану
.
Самый простой способ - использовать netstat и проверить наличие соединений там.
user@host:~$ sudo netstat -ntp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 128 0 123.45.67.89:50212 98.76.54.32:22 ESTABLISHED 16774/ssh
[more stuff removed]