type=page
status=published
title=delete-node-ssh
next=delete-password-alias.html
prev=delete-node-dcom.html
~~~~~~
delete-node-ssh
===============

[[delete-node-ssh-1]][[GSRFM00100]][[delete-node-ssh]]

delete-node-ssh
---------------

deletes a node that is enabled for communication over SSH

[[sthref914]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] delete-node-ssh [--help] 
[--uninstall={false|true}] [--force={false|true}]
node-name
----

[[sthref915]]

Description

The `delete-node-ssh` subcommand deletes a node that is enabled for
communication over secure shell (SSH) from the domain. This subcommand
does not require SSH to be configured.

This subcommand can delete only a node that is enabled for communication
over SSH. The subcommand for deleting other types of nodes depends on
the type of the node:

* A node that is enabled for communication over the Distributed
Component Object Model (DCOM) remote protocol must be deleted by using
the link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)]
subcommand.
* A node that is not enabled for remote communication must be deleted by
using the
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)]
subcommand.

To determine whether a node is enabled for communication over SSH, use
the link:list-nodes.html#list-nodes-1[`list-nodes`(1)] subcommand.

No \{product---name} instances must reside on the node that is being
deleted. Otherwise, the subcommand fails. Before running this
subcommand, delete any instances that reside on the node by using, for
example, the
link:delete-instance.html#delete-instance-1[`delete-instance`(1)]
subcommand or the
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)]
subcommand.

This subcommand is supported in remote mode only.

[[sthref916]]

Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--uninstall`::
  Specifies whether the \{product---name} software is uninstalled from
  host that the node represents. +
  Possible values are as follows: +
  `false`;;
    The \{product---name} software is not uninstalled from the host
    (default).
  `true`;;
    The \{product---name} software is uninstalled from the host. By
    default, if any node except the predefined node `localhost-`domain
    resides on any host from which \{product---name} software is being
    uninstalled, the subcommand fails. To uninstall the
    \{product---name} software from a host on which user-defined nodes
    reside, set the `--force` option to `true`. If the `--force` option
    is `true`, the subcommand removes the entire content of the parent
    of the base installation directory.
`--force`::
  If `--uninstall` is true, specifies whether the subcommand uninstalls
  the \{product---name} software from a host even if a user-defined node
  resides on the host. Possible values are as follows: +
  `false`;;
    If a user-defined node resides on a host, the software is not
    uninstalled and the subcommand fails (default). +
    If the `--force` option is `false`, the subcommand removes only the
    \{product---name} software files. Other content if the parent of the
    base installation directory, such as configuration files, are not
    removed.
  `true`;;
    The subcommand uninstalls the \{product---name} software from the
    host even if a user-defined node resides on the host. +
    If the `--force` option is `true`, the subcommand removes the entire
    content of the parent of the base installation directory.

[[sthref917]]

Operands

node-name::
  The name of the node to delete. The node must enabled for
  communication over SSH. Otherwise, an error occurs.

[[sthref918]]

Examples

[[GSRFM571]][[sthref919]]

Example 1   Deleting a Node That Is Enabled for Communication Over SSH

This example deletes the node `eg1`, which is enabled for communication
over SSH.

[source,oac_no_warn]
----
asadmin> delete-node-ssh eg1
Command delete-node-ssh executed successfully.
----

[[sthref920]]

Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref921]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-node-dcom.html#create-node-dcom-1[`create-node-dcom`(1)],
link:create-node-ssh.html#create-node-ssh-1[`create-node-ssh`(1)],
link:delete-instance.html#delete-instance-1[`delete-instance`(1)],
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)],
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)],
link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)],
link:install-node.html#install-node-1[`install-node`(1)],
link:install-node-dcom.html#install-node-dcom-1[`install-node-dcom`(1)],
link:install-node-ssh.html#install-node-ssh-1[`install-node-ssh`(1)],
link:list-nodes.html#list-nodes-1[`list-nodes`(1)],
link:uninstall-node.html#uninstall-node-1[`uninstall-node`(1)],
link:uninstall-node-dcom.html#uninstall-node-dcom-1[`uninstall-node-dcom`(1)],
link:uninstall-node-ssh.html#uninstall-node-ssh-1[`uninstall-node-ssh`(1)],
link:update-node-ssh.html#update-node-dcom-1[`update-node-dcom`(1)],
link:update-node-ssh001.html#update-node-ssh-1[`update-node-ssh`(1)]


