Назад | Перейти на главную страницу

Как указать другое имя сеанса экрана во время ssh

У меня есть несколько сеансов экрана, запущенных на одном из моих серверов (скажем, session_read, session_prod..)

В настоящее время я указываю сеанс экрана после того, как я подключился к моему серверу.

Есть ли способ указать сеанс экрана, пока я пытаюсь подключиться к ssh?

Что-то вроде

ssh user@servername screen_session_name

Я использую обычай hardstatus линия в ~/.screenrc:

hardstatus alwayslastline "%{wk}%-w%{Gk}[%n %t]%{wk}%+w%=%{Ck}%d %M %Y %c:%s"

в сочетании с небольшим скриптом оболочки:

#!/usr/bin/env bash
show_help() {
  printf "Usage: con hostname\n"
  exit 0
}

[[ "$#" -eq 1 ]] || show_help

uppercase="${1^^}"
lowercase="${1,,}"

screen -t "${uppercase}" -T screen-256color ssh "${lowercase}"

exit 0

Поместите его где-нибудь в свой PATH, и вам нужно только вызвать его:

$ my_script hostname

и будет выделен новый сеанс экрана с заголовком, установленным для имени хоста, к которому вы подключаетесь.

Вы можете предоставить дополнительные настройки через ~/.ssh/config настройки.

Вам необходимо выделить TTY, иначе SSH пожалуется:

$ ssh host screen
Must be connected to a terminal.

Предполагая, что сеанс уже отключен:

$ ssh -t user@host screen -r session

в противном случае подходящая комбинация -d, -r, -D, -R, -x на страница руководства.