Same script work different on objects

I’m making an Rpg and want the player to attack to an enemy when G is pressed.
There are 2 enemy with the same script but only the first die. How can I reach the second enemy?
There is my code:

public class charachter :Component 
{
    public int strength { get; set; }
    private int _hp;
    public int hp
    {
        get {
            return _hp;
        }
        set
        {
            _hp = value;
            if (hp <= 0)
                Die();
        }

    }
  public GameObject k { get; set; }
   public void attack(charachter enemy)
    {
        enemy.hp -= strength;
    }
  public charachter(int health,int strengt, GameObject l)
        {
        hp = health;
        strength = strengt;
        k = l;
        }
  public   void Die()
    {
     
        Destroy(k);
    }

}

And this is when i Use attack method

void Update () {
        if (Input.GetKeyDown(KeyCode.G))
        {
            player.Player.attack(enemy.Enemy) ;
            
        }
	}

And this is where I create the enemy:

void Start () {
        Enemy = new charachter(stat[0],stat[1],this.gameObject);
         
}

Can you help me what am I doing wrong?

Well it seems to me you are only attacking 1 enemy. Where are you attacking the second enemy? You need a reference to each enemy instance if you want to attack them all