blob: c3fc78293af1432e4cc6d8a0fefeceb41bfbbe7e [file]
# Copyright (c) 2024 Grant Ramsay <grant.ramsay@hotmail.com>
# SPDX-License-Identifier: Apache-2.0
config SSH_SERVER
bool "SSH Server [EXPERIMENTAL]"
depends on NET_TCP && NET_SOCKETS
select EXPERIMENTAL
select ZVFS
select ZVFS_EVENTFD
select RING_BUFFER
select NET_IPV4_MAPPING_TO_IPV6 if NET_IPV4 && NET_IPV6
help
SSH-2 server support.
config SSH_CLIENT
bool "SSH client [EXPERIMENTAL]"
depends on NET_TCP && NET_SOCKETS
select EXPERIMENTAL
select ZVFS
select ZVFS_EVENTFD
select RING_BUFFER
select NET_IPV4_MAPPING_TO_IPV6 if NET_IPV4 && NET_IPV6
help
SSH-2 client support.
# Hidden option to avoid having multiple individual options that are ORed together
config SSH
bool
depends on (SSH_SERVER || SSH_CLIENT)
default y
config SSH_CRYPTO
bool
default y
depends on SSH
select MBEDTLS if NET_NATIVE
imply MBEDTLS_PEM_PARSE_C
imply MBEDTLS_PEM_WRITE_C
imply MBEDTLS_PK_PARSE_C
imply MBEDTLS_PK_WRITE_C
imply PSA_CRYPTO
imply PSA_WANT_KEY_TYPE_AES
imply PSA_WANT_ALG_CTR
imply PSA_WANT_ALG_SHA_256
imply PSA_WANT_ALG_HMAC
imply PSA_WANT_KEY_TYPE_HMAC
imply PSA_WANT_ALG_ECDH
imply PSA_WANT_ECC_MONTGOMERY_255
imply PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE
imply PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
imply PSA_WANT_ALG_RSA_PKCS1V15_SIGN
imply PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE
imply PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT
imply PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
if SSH_SERVER
config SSH_SERVER_MAX_SERVERS
int "SSH Server max instances"
default 1
config SSH_SERVER_MAX_CLIENTS
int "SSH Server max clients (per server)"
default 1
config ZVFS_EVENTFD_ADD_SIZE_SSH_SERVER
int "Number of eventfds needed by the SSH server"
default SSH_SERVER_MAX_SERVERS
help
Each SSH server instance allocates one zvfs eventfd to wake up its
poll loop.
endif
if SSH_CLIENT
config SSH_CLIENT_MAX_CLIENTS
int "SSH Client max instances"
default 1
config ZVFS_EVENTFD_ADD_SIZE_SSH_CLIENT
int "Number of eventfds needed by the SSH client"
default SSH_CLIENT_MAX_CLIENTS
help
Each SSH client instance allocates one zvfs eventfd to wake up its
poll loop.
endif
if SSH
config SSH_PORT
int "SSH listen or connect port"
default 22
help
Default TCP port where ssh server is listening or
where the ssh client is connecting.
config SSH_MAX_CHANNELS
int "SSH max channels (per transport)"
default 1
config SSH_CHANNEL_BUF_SIZE
int "SSH channel buffer size"
default 256
config SSH_MAX_HOST_KEYS
int "SSH keygen max host keys"
default 1
config SSH_HOST_KEY_RSA
bool "RSA host key support"
default y
config SSH_HOST_KEY_ALG_RSA_SHA2_256
bool "rsa-sha2-256 host key algorithm"
default y
config SSH_HOST_KEY_ALG_RSA_SHA2_512
bool "rsa-sha2-512 host key algorithm"
imply PSA_WANT_ALG_SHA_512
config SSH_IDENTITY_OVERRIDE_ENABLE
bool "Override the default SSH identity (useful for testing)"
config SSH_IDENTITY_OVERRIDE
string "SSH identity override"
depends on SSH_IDENTITY_OVERRIDE_ENABLE
config SSH_DEFAULT_TERMINAL_WIDTH
int "Default terminal width"
default 80
config SSH_DEFAULT_TERMINAL_HEIGHT
int "Default terminal height"
default 24
config SSH_DEFAULT_WELCOME_BANNER
string "Default SSH welcome banner"
default "Welcome to Zephyr OS build "
help
The Zephyr SSH build version is appended to this string.
config SSH_SHELL
bool
depends on NET_SHELL
select GETOPT_LONG
select SHELL_GETOPT
select POSIX_C_LIB_EXT
depends on DNS_RESOLVER
default y
endif
config SSH_DEFAULT_INFO_BANNER
string "Default SSH info banner"
depends on SSH_SERVER
default "To exit press 'Enter' then '~' then '.' (i.e. enter tilde dot)"
help
This is printed after the welcome banner.
config SSH_HAS_INFO_BANNER
bool
default y if SSH_DEFAULT_INFO_BANNER != ""
depends on SSH_SERVER
config SSH_SERVER_SHELL_COUNT
int "SSH shell max channels (per transport)"
depends on SSH_SHELL && SSH_SERVER
default 1
help
This tells how many simultaneous SSH shell connections
are possible from the peer when we are the server.
module = SSH
module-dep = NET_LOG
module-str = Log level for SSH library
module-help = Enables SSH code to output debug messages.
source "subsys/net/Kconfig.template.log_config.net"